Hinzufügen zum Klassenpfad unter OSX

75

Kann mir jemand sagen, wie ich unter OSX zum Klassenpfad hinzufügen soll?

Mike2012
quelle
3
Möchten Sie eine einzelne Anwendung, viele Anwendungen für einen einzelnen Benutzer oder viele Anwendungen für alle Benutzer auf dem Computer reparieren?
Thorbjørn Ravn Andersen
javac -cp .: / home / ec2-user / lib / *: QuickStart.java
Kanagavelu Sugumar

Antworten:

99

Wenn Sie jeder Java-Anwendung auf dem Computer einen bestimmten Satz von JAR-Dateien (oder .class-Dateien) zur Verfügung stellen möchten, sollten Sie diese Dateien am besten hinzufügen /Library/Java/Extensions.

Wenn Sie dies für jede Java-Anwendung tun möchten, aber nur, wenn Ihr Mac OS X-Konto sie ausführt, verwenden Sie ~/Library/Java/Extensionsstattdessen.

BEARBEITEN: Wenn Sie dies nur für eine bestimmte Anwendung tun möchten, wie Thorbjørn gefragt hat, müssen Sie uns mehr darüber erzählen, wie die Anwendung verpackt ist.

Matt Solnit
quelle
1
Ich habe meinen Tag gerettet, weil JUnit mit dem Plugin zur Überprüfung der synthetischen Syntax auf Vim funktioniert. Ich frage mich, warum es im www kein anderes einfaches Installationsbeispiel dafür gab ...
Ory Band
1
Warum MAC die Optionen -cp / -classpath nicht berücksichtigt, werden anscheinend immer die Jars aus / Library / Java / JavaVirtualMachines
Kanagavelu Sugumar
1
-jar Befehl kann scannen / Bibliothek / Java / Erweiterungen, ~ / Bibliothek / Java / Erweiterungen
Kanagavelu Sugumar
Dies funktioniert hervorragend als Problemumgehung, aber ich stimme @kanagavelu zu. Es wäre gut zu wissen, warum der Klassenpfad ignoriert wird.
JoshOrndorff
39

In OSX können Sie den Klassenpfad wie folgt von Grund auf neu festlegen:

export CLASSPATH=/path/to/some.jar:/path/to/some/other.jar

Oder Sie können den vorhandenen Klassenpfad folgendermaßen hinzufügen:

export CLASSPATH=$CLASSPATH:/path/to/some.jar:/path/to/some/other.jar

Dies beantwortet Ihre genaue Frage. Ich sage nicht, dass es das Richtige oder Falsche ist. Ich überlasse es anderen, dies zu kommentieren.

Andrew Swan
quelle
1
Ich möchte nur mein Glas zum Klassenpfad hinzufügen. Warum gibt es Wege zu zwei Gläsern?
Cegprakash
2
Er zeigt, wie man mehr als 1 Glas hinzufügt. Er impliziert auch, dass das Hinzufügen von nur 1 Glas einfach :path/to/jaran den vorhandenen Klassenpfad @cegprakash
ylun.ca
5

Wenn Sie nur einen Klassenpfad nur für die aktuelle Laufzeit verwenden möchten. Sie können dies erreichen, indem Sie beim Ausführen des Java-Befehls eine Klassenpfadoption hinzufügen.

In Ihrer Befehlszeile. Verwenden Sie java -cp "path/to/your/jar:." main eher als nur java main

Auf diese Weise teilt Ihr Befehl den Prozessklassenpfaden mit, wo nach Bibliotheken gesucht werden kann.

Bruce Shen
quelle
-1

Wenn Ihre Shell tcsh oder csh ist, können Sie sie in / etc / profile festlegen. Öffnen Sie das Terminal "vim / etc / profile" und fügen Sie die folgende Zeile hinzu:

setenv CLASSPATH (insert your classpath here)

James Bailey
quelle
-8

Normalerweise ist das nicht nötig. Als allererstes

echo $CLASSPATH

Wenn etwas drin ist, möchten Sie wahrscheinlich Anwendungen -> Dienstprogramme -> Java überprüfen.

Wishi
quelle
9
Du meinst echo $ CLASSPATH
Amir Afghani
2
Es wurde für sie behoben, um die Anhäufung von Abstimmungen zu vermeiden.
Andrew Swan
Gibt mir eine leere Zeile zurück?
Koray Tugay
2
Wenn die CLASSPATH-Umgebungsvariable nicht in Ihrer Shell festgelegt ist, wird eine leere Zeile angezeigt. ..
Yordan Georgiev