2016-04-07 12 views
0

多くの.jarファイルを依存関係として使用するEclipseプロジェクトがありますが、ソースファイルはありません。含まれているjarの1つのメソッドとしてメインメソッド(エントリポイント)を定義する実行コンフィギュレーションが設定されています。 Eclipse内で正常に動作しますが、実行可能なjarウィザードを使用しようとすると、「指定された起動構成からメインメソッドを見つけることができませんでした」というエラーが表示されます。組み込みjarにentrypointを持つ実行可能なjarを作成します。

this tutorialによれば、jarコマンドラインツールを使用してjarのエントリポイントを手動で設定できますが、mainメソッドの.classファイルへのパスとして使用する必要があります。任意の.classファイル、埋め込みjar?

また、エントリポイントを正しく設定する他の方法はありますか?

答えて

2

標準のJARファイル形式では、マニフェストとクラス/リソースファイルのセットを使用できます。もちろん、JARファイルをJARファイル内にパッケージ化することはできますが、標準のJavaクラスローダーはそのように(埋め込みJARファイルから)クラスをロードできません。したがって、すべてのJARファイルを展開し、パッケージに従って再パッケージする必要があります。あなた自身のクラスローダーを作成していない場合も同様です。

Mavenを使用している場合、Mavenにはこの再パッケージ化タスクを実行するためのプラグインがいくつか用意されています。任意でMain-Classマニフェスト属性を使用できる、いわゆるUber JARの作成に役立つMaven JAR pluginまたはMaven Shade Pluginを参照してください。あるいは、Mavenが存在しない場合、シンプルなシェルスクリプトを使用して、クラスを展開しrejarすることができます。

これを実行したら、java -jar myjar.jarまたはjava -cp myjar.jar my.main.Classのいずれかを使用できます。

関連する問題