Ho 3 file jar e un file .java che dipende da questi file jar. Come si compila il file .java con questi file jar utilizzando un prompt dei comandi?
java -cp ".;magic.jar" Foo
è ok java Foo -cp ".;magic.jar"
non è.
Ho 3 file jar e un file .java che dipende da questi file jar. Come si compila il file .java con questi file jar utilizzando un prompt dei comandi?
java -cp ".;magic.jar" Foo
è ok java Foo -cp ".;magic.jar"
non è.
Risposte:
Puoi includere i tuoi file jar nel comando "javac" usando l'opzione "-cp".
javac -cp ".:/home/path/mail.jar:/home/path/servlet.jar;" MyJavaFile.java
Invece di "-cp" potresti anche usare "-classpath"
javac -classpath ".:/home/path/mail.jar:/home/path/servlet.jar:" MyJavaFile.java
È possibile includere i vasi ogni volta che si compila impostando correttamente la variabile d'ambiente "CLASSPATH". La variabile di ambiente memorizzerà il percorso in cui i jar e le classi che devono essere utilizzati per compilare / eseguire qualsiasi file java. Non dovrai includere i vasi singolarmente ogni volta che compili il file.
Macchine differenti hanno metodi differenti per impostare il classpath come variabile d'ambiente. I comandi per Windows, Linux, ecc. Sono diversi.
Puoi trovare maggiori dettagli in questo 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
ha funzionato per me. Stavo usando mac. Ho letto da qualche parte che ":" è usato per unix.
.:
? scusate se è una domanda stupida, ma per me non è scontata.
javac -cp .:/home/path/mail.jar:/home/path/servlet.jar; MyJavaFile.java
Prova su Linux
javac -cp jarfile source file
ESEMPIO :-
javac -cp .:/jars/* com/template/*.java
.:/jars
sostituito con la directory in cui si trovano i miei file JAR, ottengo il messaggio di errore javac: invalid flag: /location/of/first/jar/file.jar
.
La sintassi funzionerà con il comando DOS di Windows:
javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java
Prova ad aggiungere tutti i file jar delle dipendenze al tuo percorso di classe tramite le impostazioni delle variabili di ambiente o utilizza i passaggi seguenti:
Imposta il percorso di classe per i file jar delle dipendenze come mostrato di seguito:
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;
Ora puoi compilare il tuo file java. (comando javac YourJavaFile.java
:)
Spero che questo risolva il tuo problema di dipendenza.
I seguenti sono passaggi,
Copia tutti i jar e il tuo file .java in una stessa cartella (sarà facile menzionare i nomi dei file invece di menzionare il percorso lungo. Anche se puoi tenere jar e .java in cartelle separate).
Compilare,
javac -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>.java
Eseguire,
java -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>
Spero che aiuti!
Questo creerà il file .class:
javac -classpath "[jarname with specified path]" [java filename]
Questo eseguirà il file di classe:
java -cp [jarname with specified path]: [java filename]
javac -classpath "/home/scorncer/Downloads/spark-core-2.3.jar" MyFile.java
ed ** eseguire 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
È necessario specificare le dipendenze in fase di compilazione e in fase di esecuzione
Per compilare usa questo formato
javac -cp "*.jar;classfile_path" filename.java
Esempio:
javac -cp "ojdbc6.jar;c:\programs" Main.java
javac -cp jars/jar1:jars/jar2:jars/jar3 abc.java
Se stai usando Ubuntu:
/opt/JavaServices/sqlite $ export CLASSPATH=/opt/JarFiles/XXXX.jar:/opt/JarFiles/XXXX.jar:/opt/JavaServices/;javac SQLiteSample.java
Vai alla posizione della cartella (fuori dalla struttura del pacchetto)
/opt/JavaServices $ export CLASSPATH=/opt/JarFiles/XXXXX.jar:/opt/JarFiles/XXXXX.jar:/opt/JavaServices/;java sqlite.SQLiteSample
Nota: vedere i percorsi dei file e i nomi dei pacchetti
Per Windows