Ich habe 3 JAR-Dateien und eine Java-Datei, die von diesen JAR-Dateien abhängt. Wie kompiliere ich die Java-Datei mit diesen JAR-Dateien über eine Eingabeaufforderung?
java -cp ".;magic.jar" Foo
ist ok java Foo -cp ".;magic.jar"
ist nicht.
Ich habe 3 JAR-Dateien und eine Java-Datei, die von diesen JAR-Dateien abhängt. Wie kompiliere ich die Java-Datei mit diesen JAR-Dateien über eine Eingabeaufforderung?
java -cp ".;magic.jar" Foo
ist ok java Foo -cp ".;magic.jar"
ist nicht.
Antworten:
Sie können Ihre JAR-Dateien mit der Option "-cp" in den Befehl "javac" aufnehmen.
javac -cp ".:/home/path/mail.jar:/home/path/servlet.jar;" MyJavaFile.java
Anstelle von "-cp" können Sie auch "-classpath" verwenden.
javac -classpath ".:/home/path/mail.jar:/home/path/servlet.jar:" MyJavaFile.java
Sie können die Jars bei jeder Kompilierung einschließen, indem Sie die Umgebungsvariable "CLASSPATH" richtig einstellen. Die Umgebungsvariable speichert den Pfad, in dem sich die Jars und Klassen befinden, die zum Kompilieren / Ausführen einer Java-Datei verwendet werden müssen. Sie müssen die Gläser nicht jedes Mal einzeln einschließen, wenn Sie Ihre Datei kompilieren.
Verschiedene Maschinen haben unterschiedliche Methoden, um den Klassenpfad als Umgebungsvariable festzulegen. Die Befehle für Windows, Linux usw. sind unterschiedlich.
Weitere Details finden Sie in diesem Blog .
http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html
javac -classpath ".:/home/path/mail.jar;/home/path/servlet.jar" MyJavaFile.java
arbeitete für mich. Ich habe einen Mac benutzt. Ich habe irgendwo gelesen, dass ':' für Unix verwendet wird.
.:
das Entschuldigung, wenn es eine dumme Frage ist, aber es ist mir nicht klar.
javac -cp .:/home/path/mail.jar:/home/path/servlet.jar; MyJavaFile.java
Bitte versuchen Sie es unter Linux
javac -cp jarfile source file
BEISPIEL: -
javac -cp .:/jars/* com/template/*.java
.:/jars
ersetzt durch das Verzeichnis, in dem sich meine JAR-Dateien befinden, erhalte ich die Fehlermeldung javac: invalid flag: /location/of/first/jar/file.jar
.
Die Syntax funktioniert unter Windows dos:
javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java
Versuchen Sie, alle Abhängigkeits-JAR-Dateien über Umgebungsvariableneinstellungen zu Ihrem Klassenpfad hinzuzufügen, oder führen Sie die folgenden Schritte aus:
Legen Sie den Klassenpfad für Ihre Abhängigkeits-JAR-Dateien wie folgt fest:
set classpath=C:\Users\sarath_sivan\Desktop\jars\servlet-api.jar; C:\Users\sarath_sivan\Desktop\jars\spring-jdbc-3.0.2.RELEASE; C:\Users\sarath_sivan\Desktop\jars\spring-aop-3.0.2.RELEASE;
Jetzt können Sie Ihre Java-Datei kompilieren. (Befehl: javac YourJavaFile.java
)
Hoffe, dies wird Ihr Abhängigkeitsproblem lösen.
Das Folgende sind Schritte,
Kopieren Sie alle Jars und Ihre .java-Datei in denselben Ordner (es ist einfach, Dateinamen zu erwähnen, anstatt einen langen Pfad zu erwähnen. Sie können jar und .java jedoch in separaten Ordnern aufbewahren).
Kompilieren,
javac -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>.java
Ausführen,
java -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>
Ich hoffe das hilft!
Dadurch wird eine .class-Datei erstellt:
javac -classpath "[jarname with specified path]" [java filename]
Dadurch wird die Klassendatei ausgeführt:
java -cp [jarname with specified path]: [java filename]
javac -classpath "/home/scorncer/Downloads/spark-core-2.3.jar" MyFile.java
und ** ausführen java -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile.java also i tried java -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile
Sie müssen die Abhängigkeiten sowohl in der Kompilierungszeit als auch in der Laufzeit angeben
Verwenden Sie zum Kompilieren dieses Format
javac -cp "*.jar;classfile_path" filename.java
Beispiel:
javac -cp "ojdbc6.jar;c:\programs" Main.java
javac -cp jars/jar1:jars/jar2:jars/jar3 abc.java
Wenn Sie Ubuntu verwenden:
/opt/JavaServices/sqlite $ export CLASSPATH=/opt/JarFiles/XXXX.jar:/opt/JarFiles/XXXX.jar:/opt/JavaServices/;javac SQLiteSample.java
Gehe zum Ordner (außerhalb der Paketstruktur)
/opt/JavaServices $ export CLASSPATH=/opt/JarFiles/XXXXX.jar:/opt/JarFiles/XXXXX.jar:/opt/JavaServices/;java sqlite.SQLiteSample
Hinweis: Bitte beachten Sie die Dateispeicherorte und Paketnamen
Für Windows