Hinzufügen eines Ordners mit JAR-Dateien zu meinem Pfad

10

Ich habe Java-Tools, die ich verwenden muss. Die Tools befinden sich in einem Ordner voller JAR-Dateien. Ich wollte diesen Ordner aus den offensichtlichen Gründen zu meinem Pfad hinzufügen, aber nachdem ich mein .bash_profile so bearbeitet habe, dass der neue Ordner in die Variable $ PATH aufgenommen und als Quelle verwendet wird, funktioniert er nicht. Ich habe auch versucht, mich abzumelden und wieder anzumelden, und das hat auch nicht funktioniert. Ich erhalte immer wieder die Fehlermeldung "Zugriff auf jarfile .jar nicht möglich"

Davy Kavanagh
quelle
Haben Sie überprüft, ob es sich nicht um ein Berechtigungsproblem handelt?
Matcheek
Sie müssen meine Unwissenheit entschuldigen, aber wie könnte ich das überprüfen?
Davy Kavanagh
Sie können diese Antwort überprüfen: stackoverflow.com/questions/5569591/…
matcheek

Antworten:

5

Für JAR-Dateien müssen Sie den CLASSPATH und nicht die Umgebungsvariable PATH festlegen.

Wenn Sie BASH verwenden, ist dies: export CLASSPATH="$CLASSPATH:<full_path_to_each_jar_files>"

Fügen Sie es besser in die Datei ein, es .bashrcsei denn, Sie wissen, was Sie tun.

Beispiel:

export CLASSPATH="$CLASSPATH:$HOME/java/lib/foebar.jar:$HOME/extra/lib/another.jar"

Aber wenn Sie die JAR-Datei immer noch mit der Main-Klasse aufrufen, müssen Sie natürlich den vollständigen Pfad dafür verwenden:

java -jar $HOME/java/lib/main-prog.jar

Sie können jedoch die Ausführung richtig einstellen und ausführen:

chmod u+x $HOME/java/lib/main-prog.jar
export PATH=$PATH:$HOME/java/lib
main-prog.jar

Sie müssen jedoch darauf achten, dass Ihr Klassenpfad korrekt ist, und alle erforderlichen Gläser auflisten.

Huygens
quelle
Ich habe versucht, CLASSPATH = $ CLASSPATH: <my_new_path> zu exportieren, wobei der <my_new_path> durch den tatsächlichen Pfad des Ordners ersetzt wurde, bezogen und immer noch das gleiche Ergebnis.
Davy Kavanagh
Entschuldigung, mein Fehler, es ist nicht der Pfad, sondern die .jar-Datei mit dem vollständigen Pfad, den Sie eingegeben haben. Ich werde die Antwort aktualisieren
Huygens
Bedeutet dies, dass ich dem CLASSPATH einen neuen Eintrag für jede JAR-Datei hinzufügen muss? Es gibt ungefähr 80 dieser JAR-Dateien.
Davy Kavanagh
@DavyKavanagh Hinweis: Fügen Sie die Umgebungsvariable nicht hinzu .bashrc, sondern fügen Sie sie hinzu .profile. Siehe Alternative zu .bashrc
Gilles '
@ DaveKavanagh Entschuldigung für die lange Verzögerung in der Antwort. Aber ja, dies würde bedeuten, dass die 80 JAR-Dateien zum Klassenpfad hinzugefügt werden.
Huygens
2

Wenn Ihre Tools Skripte sind, die Befehle wie enthalten

 java -jar somejafile.jar

Dann sollten Sie sie so bearbeiten, dass sie den richtigen Pfad enthalten

 java -jar /full/path/to/somefile.jar
Jari Laamanen
quelle
Nein, sorry, die Werkzeuge sind die JAR-Dateien selbst
Davy Kavanagh