4

クラス org.foobar.MyClass があり、それを JAR ファイルに入れたい場合、JAR の /org/foobar/ ディレクトリに入れる必要がありますか、それとも /bin/org/foobar/ に入れることができますか? /bin/ を JAR 自体のクラスパスとして指定しますか?

4

5 に答える 5

3

マニフェストに Class-Path プロパティを含めて、アプリが依存する jar ファイルをリストすることができます。パスは、実行可能な JAR の場所に対して相対的であると見なされます。

たとえば、app.jar の MANIFEST.MF に次のものが含まれているとします。

クラスパス: lib1.jar,lib/lib2.jar

次に、JVM は、lib1.jar が app.jar と同じディレクトリにあること、および lib2.jar を含む lib というサブディレクトリにあることを期待します。

于 2009-01-26T17:55:55.707 に答える
1

誰もがこれを行う通常の方法(これまでのところ、JARが何か違うことをするのを見たことがありません)は、クラスorg.foobar.MyClassをJARの/ org /foobar/ディレクトリにあるJARファイルに配置することです。異常なことをしていない人がこのJARを通常使用するのを妨げるので、何か別のことをする正当な理由を想像することはできません。

于 2009-01-26T17:44:44.997 に答える
0

これは、マニフェストファイルを使用することで実現できると思います。私の記憶が正しければ、jar内の特定のファイルの場所を指定できます。

于 2009-01-26T16:57:11.800 に答える
0

jar ファイル内の名前は、クラス名と一致する必要があります。もちろん、奇妙なことをするカスタム クラス ローダーを作成しない限り。

jar URL を使用して、jar ファイル内の「ディレクトリ」を指定できます。URLClassLoaderただし、これを正しく処理するとは思いません (試していません)。

標準として存在する機能は、他の jar ファイルをマニフェストで指定してクラスパスに追加することです。

于 2009-01-26T17:24:57.720 に答える
-1

なぜ後者をするのですか?パッケージ名に基づいて正しいディレクトリに配置する方が簡単です。これにより、MANIFESTファイルを編集したり、その他の特別な設定を行ったりする必要がなくなります。

于 2009-01-26T16:58:38.800 に答える