2012-02-22 13 views
70

Ho 3 file jar e un file .java che dipende da questi file jar. Come faccio a compilare il file .java con questi file jar usando un prompt dei comandi?Come includere i file jar con il file java e compilarlo nel prompt dei comandi

+7

digita "javac -help" –

+2

http://docs.oracle.com/javase/6/docs/technotes/tools/index.html#basic –

+2

hope [this] (http://stackoverflow.com/questions/1064481/newbie-question-how-to-include-jar-files-when-compiling) ti aiuta .. –

risposta

12

tenta di aggiungere tutti i file jar di dipendenza al percorso di classe attraverso le impostazioni delle variabili d'ambiente o utilizzare la procedura seguente:

  1. prompt dei comandi Apri.
  2. Cambia directory nella posizione del file java da compilare.
  3. Impostare il percorso di classe per i vostri file jar di dipendenza come illustrato 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;

  4. Ora, è possibile compilare il file java. (comando: javac YourJavaFile.java)

Spero che questo risolva il problema delle dipendenze.

67

È possibile includere i file jar nel comando "javac" utilizzando l'opzione "-cp".

javac -cp ".:/home/path/mail.jar:/home/path/servlet.jar;" MyJavaFile.java 

Invece di "cp" si potrebbe anche usare "-classpath"

javac -classpath ".:/home/path/mail.jar:/home/path/servlet.jar:" MyJavaFile.java 

Si potrebbe compresi i vasi ogni volta che si compila impostando correttamente la variabile d'ambiente "percorso di classe". La variabile di ambiente memorizzerà il percorso in cui i jar e le classi devono essere utilizzati per compilare/eseguire qualsiasi file java. Non dovrai includere i vasi singolarmente ogni volta che compili il tuo file.

Diverse macchine hanno metodi diversi per impostare classpath come variabile di ambiente. I comandi per Windows, Linux, ecc. Sono diversi.

È possibile trovare ulteriori dettagli in this blog.

http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html 
+7

'javac -classpath".:/Home/percorso/mail.jar; /home/path/servlet.jar "MyJavaFile.java' ha funzionato per me. Stavo usando mac. Ho letto da qualche parte che ':' è usato per unix. – Sri

+1

Ho usato questo comando ma quando ho provato ad accedere alla classe presente nel file jar, sto ottenendo ClassNotFoundException. –

9

Sintassi lavorerà a comando DOS di Windows:

javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java 
+3

Dopo aver eseguito correttamente il comando precedente su come eseguire il file di classe java? –

11

Prova su Linux

javac -cp jarfile source file 

ESEMPIO: -

javac -cp .:/jars/* com/template/*.java 
+0

Quando provo ** ESEMPIO: - **, con '.:/Jars' sostituito con la directory in cui si trovano i miei file JAR, ricevo il messaggio di errore' javac: invalid flag:/location/of/first/vaso/file.jar'. –

+0

http://stackoverflow.com/questions/27915204/javac-invalid-flag-activation-1-1-jar si prega di refere questo, potrebbe risolvere il problema – Jamsheer

4

Questo creerà file .class:

javac -classpath "[jarname with specified path]" [java filename] 

Questo file di classe eseguirà:

java -cp [jarname with specified path]: [java filename] 
+1

il comando java sta mostrando errore causato da: ** java.lang. ClassNotFoundException: org.slf4j.LoggerFactory ** voglio ** ** compilare 'javac -classpath "/home/scorncer/Downloads/spark-core-2.3.jar" MyFile.java' e ** corsa ** 'java -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile.java anche io ho provato java -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile' –

3

Try This.

javac -cp .:jars/jar1:jars/jar2:jars/jar3 com/source/*.java 
0

Se si utilizza Ubuntu:

/opt/JavaServices/sqlite $ export CLASSPATH=/opt/JarFiles/XXXX.jar:/opt/JarFiles/XXXX.jar:/opt/JavaServices/;javac SQLiteSample.java 

Vai alla cartella posizione (Out of struttura del pacchetto)

/opt/JavaServices $ export CLASSPATH=/opt/JarFiles/XXXXX.jar:/opt/JarFiles/XXXXX.jar:/opt/JavaServices/;java sqlite.SQLiteSample 

Nota: Si prega di vedere le posizioni dei file e dei pacchetti