Dieses scheinbar einfache Problem stopft mich. Ich habe ein Jar mit einer Reihe von Abhängigkeiten, die ich in Linux nicht funktionieren kann. Alle jars und das Skript befinden sich im selben Verzeichnis.unix java classpath cp hinzufügen
Dieser nimmt und versucht, meine Hauptklasse
java -cp MyJar.jar com.mylib.MyMainClass
aber natürlich laufen sie ein ClassNotFoundException
auf einer der Abhängigkeitsklassen führt. Also versuche ich, eine der Abhängigkeiten hinzuzufügen wie so
java -cp MyJar.jar:MyDependencyJar.jar com.mylib.MyMainClass
Dann sagt es ClassNotFoundException
für com.mylib.MyMainClass
!
Ich habe auch versucht, diese mit verschiedenen gleichen Probleme
java -cp . com.mylib.MyMainClass
und diese
java -cp *.jar com.mylib.MyMainClass
und diese
java -cp .:*.jar com.mylib.MyMainClass
Jede Idee, bitte?
Wenn sich 'com.mylib.MyMainClass' in' MyJar.jar' und alle Abhängigkeitsklassen in 'MyDependencyJar.jar' befinden, dann muss' java -cp MyJar.jar: MyDependencyJar.jar com.mylib.MyMainClass' funktionieren. Was gibt es sonst noch im aktuellen Verzeichnis? – SubOptimal
Ja, das habe ich gedacht und angenommen. Es würde stur aber nicht funktionieren. Nur vollständige Pfadnamen vor jeder Abhängigkeit, wie in der ersten Antwort beschrieben, funktionieren. Ich bin ziemlich erstaunt darüber, aber da ist es .. –