У меня есть проект Maven, который создает файл jar и копирует все зависимости в папку target/lib
. Я хочу выполнить этот проект на клиентской машине (окнах). Итак, я скопировал папку 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 библиотек, и это может расти в будущих выпусках. Есть ли лучший способ сделать это?