web-dev-qa-db-ja.com

外部jarファイルを使用してコマンドラインからJavaアプリケーションを実行する

メインクラスを含む外部jarファイル(パッケージ構造を持つ)があり、次のようにコマンドラインからアプリを実行できます。

Java -jar example.jar

しかし、このjarファイルの外にまだ別のtest.classファイルがあり、このjarファイル内の一部のクラスはtest.classのメソッドを呼び出します。コマンドラインでjarファイルが使用するtest.classファイルを指定するにはどうすればよいですか?多くの方法を試し、常に表示します。

NoClassDefFoundError for test.class

注意:test.classファイルもexample.jarファイルのクラスファイルを使用し、独自のパッケージ構造を持っています。

それらを1つのjarファイルにまとめることができることはわかっていますが、残念ながら、test.classファイルを分離する必要があります。

7
LifeOnCodes

クラスがbinディレクトリにある場合:

Java -cp xxx.jar;bin pck1.pck2.MainClass

クラスが現在のディレクトリにある場合:

Java -cp xxx.jar;. pck1.pck2.MainClass

等々...

マニュアルの詳細 、少なくとも一度は読んでください... ;-)

11
Aubin

Linuxシステムの場合

コンパイルして実行Javaプログラムと外部JAR。

javac -cp </path/jar1>:<path/jar2>:<path/jar3> MainClass.Java

コンパイラが非推奨の警告をスローした場合。 -Xlint:deprecation引数を使用して再コンパイルできます。

javac -Xlint:deprecation -cp </path/jar1>:<path/jar2>:<path/jar3> MainClass.Java

最後に、Javaプログラム:

Java -cp </path/jar1>:<path/jar2>:<path/jar3>:. MainClass

Javaプロセスをバックグラウンドで実行する場合。Nohupを使用できます。

Nohup Java -cp </path/jar1>:<path/jar2>:<path/jar3>:. MainClass &
4
Prabhat Jain

次のコマンドを使用して、JavaメインクラスまたはJava jarファイル:

Java -Djava.ext.dirs=E:\lib  E:\Executable\MyMainClass

Java -Djava.ext.dirs=E:\lib  E:\Executable\purging.jar
3
user432843