classpath, package


⛳ Classpath


カテゴリ


空のディレクトリでエディタ(メモ帳)を開き、class b{} class a{}を作成し、a.javaにファイルを保存します.その後、cmdが開いてjavac a.javaにコンパイルされる.

コンパイルすると、2つのクラスファイルが生成されていることがわかります.
クラスがクラスファイルになります.

クラスパス


今回はa2.javaファイルを作成しました.内容は以下の通りです.
class b2{
	public void print() {
		System.out.println("Hello??");
	}
}

class a2{
	public static void main(String[] args) {
		b2 con = new b2();
		con.print();
}

またクラスファイルが生成されます.これで、javaディレクトリにlibという新しいフォルダを作成し、b2.classファイルをフォルダに移動しようとします.その後、cmdウィンドウでjava a2を実行し、Hello??を出力しますか?いいえ.エラーが発生する可能性があります.
発生したエラーは、b2.classが現在のディレクトリに存在しないエラーである可能性があります.このような問題はjava -classpath ".;lib" a2でいいです.-classpath:Javaを実行するときに使用するクラスの場所を仮想マシンに伝える".;lib"から.現在のディレクトリでクラスを検索".;lib"から;は、パスとパスを区別する区切り記号です.".;lib"からlibは、現在のディレクトリが存在しない場合、libがクラスを検索することを示す.
クラスパスはjavaを実行するときにクラスの場所を指定する役割を果たします.Javaアプリケーションで使用されるクラスが複数のパスに分散している場合、クラスパスが役に立つ場合があります.

📦 Package


classpathは、コンピュータ記憶装置のどこかに存在するクラスファイルを使用する方法である.packageは、1つのクラスで同名のクラスを使用する方法です.
クラスが増えるにつれて、同じ名前のクラスが現れる可能性が高くなり、これらの名前の衝突を防ぐために設計されたパッケージです.
パッケージは通常のディレクトリと一致します.同じパッケージ内のクラスは一緒に使用できますが、別のパッケージ(ディレクトリ)内のクラスを使用する場合は、importで現在のソースコードにロードする必要があります.
特定のパッケージのすべてのクラスをロードするには、.*を貼り付けるだけです.
通常、プロジェクトディレクトリはsrcにソースコードを作成して管理し、コンパイル後の結果をbinサブアイテムに配置します.自分で作ってみようjavaフォルダにbinおよびsrcフォルダを作成し、ソースコードをsrcに移動します.javaフォルダでcmdを実行し、次のように入力します.

このように入力してコンパイルすると、srcフォルダのa.javaa2.javaが同時にコンパイルされ、同じフォルダに.classファイルが生成されます..classフォルダにbinファイルを作成する場合は、次のコンパイルを行います.
-d binはコンパイル結果をbinディレクトリの下に配置します.これは、Javaコンパイラがクラスのパッケージに自動的に対応するディレクトリを作成することを意味します.
異なるパッケージがインポートされ、各パッケージに同じ名前のクラスがある場合は、newキーワード生成プログラムを使用する場合に、そのパッケージ名を使用して解決できます.
public static void main(String[] args) {
        javatutorials.packages.example2.B b = new javatutorials.packages.example2.B();
    }
Reference
1. 生活コードクラスパス
2. 生活コード小包