2

JarSpliceを使用すると、jarファイルとその他の依存関係およびライブラリを1つの実行可能jarファイルに結合できます。

ただし、実行可能jarには2つのコマンドライン引数が必要です。これらの引数は、JarSplicejarを呼び出したときにまったく渡されないようです。

私はそれを行う方法のサイトで、またはそれが可能であるかどうかさえ何も見ませんでした。誰かがこの問題に遭遇したか、または可能な解決策を見つけたかどうか興味があります。

アップデート

また、メインクラスがJarSpliceセットアップで指定されており、正常に呼び出されることも追加する必要があります。ただし、java -jar myjar.jar param1 param2を呼び出してから、param1とparam2を出力しようとすると、それらはnullになります。

4

1 に答える 1

3

残念ながら、このツールにはいくつかの重大な欠陥があります。

Main-Classfat.jar に設定するだけでなくMANIFEST.MF、それ自体org.ninjacave.jarsplice.core.JarSpliceLauncherMain-Classとして設定します。

次に、fat.jarを ( を使用してjava -jar fat.jar) 開始すると、このJarSpliceLauncherクラスはを使用して新しいプロセスProcesBuilderを開始し、追加のパラメーターを渡しません。

私にとっては、 JarSpliceの単なるバグ/悪い設計です。

これを回避するには、実際のMain-Classを次のjavaように実行可能ファイルに渡します。

java -cp fat.jar org.myawesomeapp.MyAwesomeClass [params....]

また、他の(より良い)オプションがあります:

  1. Maven Assembly Pluginjar-with-dependenciesについて読んでください。それはdescriptorです。
  2. Eclipse では、Export => Runnable JAR => Extract required libraries into generated JARを使用できます。
于 2012-06-12T14:19:25.933 に答える