クラスパスはこう設定せよ 2001/02/11 (日) 04:30:06        [mirai]
----8<--------8<--------8<--------8<--------8<--------8<--------8<----
+ あるアプリケーション/アプレットの開発中である。
  + ライブラリは使用しない。
    + 開発中のクラスはパッケージ宣言をしていない。
        => 環境変数CLASSPATHをセットしない。

    + 開発中のクラスはパッケージ宣言をしている。
      + そのプロジェクトは単一のパッケージで構成される。
          => 環境変数CLASSPATHをセットせず、
             「javac -d . Foo.java」でコンパイルする。

      + そのプロジェクトは複数のパッケージにまたがった構成である。
          => 以下のどれかを選択。
             a) 環境変数CLASSPATHをセットせず、
               「javac tako/ika/Foo.java」でコンパイルする。
             b) 環境変数CLASSPATHに「/java/classes」(など)を設定して、
               「javac -d /java/classes Foo.java」でコンパイルする。
             c) 環境変数CLASSPATHに「/java/work」(など)を設定して、
               「javac Foo.java」でコンパイルする。

  + ライブラリを使用する。
    + そのライブラリは今後も継続的に利用するつもりだ。
      + JDKのバージョンは1.2。
          => ライブラリをJARアーカイブ形式にしてそれをエクステンション
             ディレクトリに格納する。

      + JDKのバージョンは1.1.x。
        + そのライブラリはNetscape NavigatorやInternet Explorerなど、
          すべてのJavaアプリケーションから参照されても問題がない。

            => ライブラリをどこか適当な場所に置き、それがJAR/ZIP形式
               ならそのファイルのパス名を、バラバラのclassファイルなら
               その置かれたディレクトリのパス名を、環境変数CLASSPATH
               に含める設定を、AUTOEXEC.BAT ないし ~/.cshrc に記述する。
               ※このときCLASSPATHには「.」を含める。

        + そのライブラリはNetscape NavigatorやInternet Explorer、他の
          Javaアプリケーションから参照されると問題があるかもしれない。

            => AUTOEXEC.BAT や ~/.cshrc にCLASSPATHの設定を書かず、別の
               BATファイルないしシェルスクリプトに設定を記述しておき、
               開発作業を始める端末でそれを実行するようにする。
               ※このときCLASSPATHには「.」を含める。

               ただし、Netscape Navigatorの起動は、そのCLASSPATH設定を
               する前に行うこと。

    + そのライブラリは一時的に使用するだけだ。
        => 環境変数CLASSPATHにそのライブラリのパス名を含める設定を、
           必要なときに手作業で行うようにする。

+ 完成品を動かしたい。
  + JDKのバージョンは1.2である。
      => そのアプリケーションのクラス、およびそれが必要とするライブラリ
         のクラスのパス名を、javaコマンドの「-classpath」オプションで
         指定して起動するようにする。
         ※このとき-classpathに「.」を含めない。

  + JDKのバージョンは1.1.xである。
      => そのアプリケーションのクラス、およびそれが必要とするライブラリ
         のクラス、さらに、使用するJDKのシステムクラス(classes.zip)の
         パス名を、javaコマンドの「-classpath」オプションで指定して起動
         するようにする。
         ※このとき-classpathに「.」を含めない。

---->8-------->8-------->8-------->8-------->8-------->8-------->8----