7 Stimmen

Java von der Kommandozeile aus ausführen

Ich habe einen Ordner auf meinem Desktop mit dem Titel "Stuff" und in diesem Ordner habe ich Folgendes:

  • Hallo.java
  • mail.jar

Und Hello.java importiert von mail.jar, also muss ich Hello.java sagen, dass es nach mail.jar suchen soll.

Wie kann ich dies von einer Windows-Befehlszeile und von einer Unix-Befehlszeile aus kompilieren und ausführen?

14voto

T.J. Crowder Punkte 948310

Kompilieren:

javac -cp .;mail.jar Hello.java

donde ; ist für Windows; verwenden Sie : für *nix.

und laufen:

java -cp .;mail.jar Hello

wobei wiederum die ; für Windows und : für *nix.

-cp sagt beides javac y java was Klassenpfad zu verwenden, und da sich Ihre Dateien in dem lokalen Verzeichnis befinden, in dem Sie den Befehl ausführen, können Sie . für den Hello-Teil und den Namen des Jars für die Pfade innerhalb des Jars. Wikipedia hat eine anständiger Artikel über Klassenpfade .

Allerdings sollten Sie, wenn Sie dies regelmäßig tun wollen, Ihre CLASSPATH Umgebungsvariable zu verwenden, anstatt ständig die -cp Flagge. Beide java y javac verwenden Sie die CLASSPATH variabel.

Für meinen eigenen Entwicklungsrechner habe ich . in meinem CLASSPATH der Einfachheit halber variabel. Es ist nicht etwas, was ich auf einer Produktions- oder Build-/Test-Box tun würde, aber es ist sehr praktisch für Entwicklungszwecke. Sie würden Ihre üblichen Jars in es auch haben wollen.

2voto

Michael Borgwardt Punkte 334642

Angenommen, Hello.java enthält unter Windows keine Paketdeklaration:

javac -cp mail.jar Hello.java
java -cp mail.jar;. Hello

Der einzige Unterschied auf Unix-Plattformen besteht darin, dass Sie die Elemente des Klassenpfads mit einem Scolon anstelle eines Semikolons trennen:

java -cp mail.jar:. Hello

-1voto

Richard Punkte 9444

Befolgen Sie diese Anleitung, und Sie sollten es im Handumdrehen schaffen:

Java-Kompilierung

Sie sollten auch keine Probleme mit dem Klassenpfad haben, da sich Ihre Klassen im selben Ordner befinden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X