2014年3月17日月曜日

JAR生成時の外部ファイル参照

Eclipse上で実行する場合のクラスパスと、他の環境にJARとして持って行って実行する場合のクラスパスは、当たり前だが異なる。
この問題を解決する方法。

JAR化したいプロジェクト上で右クリック>Exportを選択して、以下のJava>JAR fileを選択


JAR fileの出力場所を指定する。

途中の設定。(何もいじらない。)


外部Jarを参照する場合、META-INFフォルダの生成と、MANIFEST.MFファイルを生成する必要があるが、以下の指定だと正しく生成されなかったので、後で、できあがったJarファイルの中身を直接いじる。(※1)



※1
WorkingDirectoryが以下の場合のMANIFESTファイルのサンプルを書く。
もちろん、libファイルもJar化する時に、一緒にExportしてください。

[WorkingDirectory]/lib/XXX.jar

MANIFESTファイルのサンプル
Manifest-Version: 1.0
Main-Class: test.Test
Class-Path: . lib\XXX.jar

Class-Pathを指定することで、外部ファイルを参照させている。
また、Class-Pathの最初の要素に"."を入れることで、WorkingDirectoryも相対パスに設定している。
(が、正しく動いているかは未確認。)

0 件のコメント:

コメントを投稿