Wykonaj plik jar z wieloma bibliotekami ścieżek klasy z wiersza polecenia
Mam projekt Maven, który generuje plik jar i kopiuje wszystkie zależności dotarget/lib
teczka. Chcę wykonać ten projekt na komputerze klienta (Windows). Więc skopiowałemmyproject.jar
doC:\xyz
folder i wszystkie zależności odC:\xyz\lib
teczka. Jak wykonać ten projekt z wiersza polecenia klienta? Próbowałem użyćjava -cp lib\*.jar -jar myproject.jar
zC:\xyz
folder, ale zgłasza błąd.
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.
Myślę, że jeśli określę wszystkie zależności w ścieżce klasy (npjava -cp lib\dep1.jar;dep2.jar
), pozbędzie się problemu, ale nie chcę tego robić, ponieważ mam już 40 bibliotek i może on rosnąć w przyszłych wydaniach. Czy jest lepszy sposób, aby to zrobić?