メインクラスを含む外部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ファイルを分離する必要があります。
クラスがbinディレクトリにある場合:
Java -cp xxx.jar;bin pck1.pck2.MainClass
クラスが現在のディレクトリにある場合:
Java -cp xxx.jar;. pck1.pck2.MainClass
等々...
マニュアルの詳細 、少なくとも一度は読んでください... ;-)
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 &
次のコマンドを使用して、JavaメインクラスまたはJava jarファイル:
Java -Djava.ext.dirs=E:\lib E:\Executable\MyMainClass
Java -Djava.ext.dirs=E:\lib E:\Executable\purging.jar