Wie set CLASSPATH in Linux, damit java finden die jar-Datei?
Unter Linux, bin ich versucht, zum ausführen einer jar-Datei wie folgt:
java -jar plantuml.jar -testdot
während CLASSPATH
Satz zu jeder der folgenden (die Datei befindet sich bei /home/user/plantuml.jar
):
export CLASSPATH=/home/user
export CLASSPATH=/home/user/
export CLASSPATH=/home/user/plantuml.jar
In jedem Fall, egal wie ich es definieren CLASSPATH
, die java
Befehl gibt eine Fehlermeldung Unable to access jarfile plantuml.jar
. Was mache ich hier falsch?
- haben Sie versucht, die -cp-argument, um ausführbare java-Datei?
- Sind Sie sicher, dass Ihre jar ist ausführbar im Sinne von Java? MANIFESTIERT.MF Main-Class-Eintrag? Classpat scheint in diesem Fall irrelevant.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Geben Sie den kompletten Pfad nach dem parameter
-jar
. Also bei deinem Beispiel zu nennenDen
$CLASSPATH
wird nur ausgewertet, um zusätzliche Dateien (Klassen/Ressourcen), nicht aber die jar-Datei definiert, die in der Befehlszeile.java -cp /home/user -jar plantuml.jar -testdot
?-jar
muss einen vollständigen Pfad-Namen.CLASSPATH
kann verwendet werden, um Pfade, wo das java ist, etwas zu suchen, wie dies möglich ist, für jede andere Programmiersprache, die ich bisher begegnet sind. Ich löse dieses problem durch die Definition etwas in meinem.bashrc
zu vermeiden, geben Sie den vollständigen Pfadnamen jedes mal wenn ich diesen Befehl verwenden möchten.Vielleicht sind die fehlenden Namen der main-Klasse oder Pfad zu dem jar. Haben Sie versucht, führen Sie es aus:
Ist Ihr Programm in Abhängigkeit von anderen Klassen? Wenn ja, möchten Sie vielleicht hinzufügen -cp parameter.
-jar
parameter gibt es keine Notwendigkeit, Namen den Namen der Klasse. Auch die Fehlermeldung zeigt an, dass die jar-Datei wird nicht gefunden.Den classpath verwendet, um Klassen, wenn Sie finden Sie von dem Namen. Es ist im wesentlichen eine Liste der Pfade (Verzeichnisse UND jar - /zip-Dateien), in denen die JVM muss sich für Klassen oder andere Ressourcen, die bei der Verwendung von Methoden wie
ClassLoader.getResourceAsStream()
.Den Wert übergeben, der -jar-option auf der Kommandozeile ist der Datei-Pfad zu der JAR-Datei.
So, Sie finden nicht eine jar-Datei, wenn Sie nur mit Bezug auf die jar-Datei durch den Namen. Die JAR-Datei-Pfad in der CLASSPATH soll ein Pfad-element, das 'enthält' andere Ressourcen.
Was Sie hier tun müssen, ist entweder