jar ファイルを生成し、すべての依存関係をtarget/lib
フォルダーにコピーする Maven プロジェクトがあります。このプロジェクトをクライアントのマシン (Windows) で実行したい。そのため、フォルダーにコピーmyproject.jar
しC:\xyz
、すべての依存関係をフォルダーにコピーしましたC:\xyz\lib
。クライアントのコマンド プロンプトからこのプロジェクトを実行するにはどうすればよいですか? java -cp lib\*.jar -jar myproject.jar
フォルダから使用しようとしましC:\xyz
たが、次のエラーがスローされます。
Exception in thread "main" java.lang.NoClassDefFoundError: lib\commons-codec-1/3/jar
Caused by: java.lang.ClassNotFoundException: lib\commons-codec-1.3.jar
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: lib\commons-codec-1.3.jar. Program will exit.
クラスパスですべての依存関係を指定すると (のようにjava -cp lib\dep1.jar;dep2.jar
)、問題は解決すると思いますが、既に 40 のライブラリがあり、将来のリリースで大きくなる可能性があるため、これを行いたくありません。これを行うより良い方法はありますか?