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 件のコメント:
コメントを投稿