J'ai 3 fichiers jar et un fichier .java qui dépend de ces fichiers jar. Comment compiler le fichier .java avec ces fichiers jar à l'aide d'une invite de commande?
java -cp ".;magic.jar" Foo
est ok java Foo -cp ".;magic.jar"
n'est pas.
J'ai 3 fichiers jar et un fichier .java qui dépend de ces fichiers jar. Comment compiler le fichier .java avec ces fichiers jar à l'aide d'une invite de commande?
java -cp ".;magic.jar" Foo
est ok java Foo -cp ".;magic.jar"
n'est pas.
Réponses:
Vous pouvez inclure vos fichiers jar dans la commande "javac" en utilisant l'option "-cp".
javac -cp ".:/home/path/mail.jar:/home/path/servlet.jar;" MyJavaFile.java
Au lieu de "-cp", vous pouvez également utiliser "-classpath"
javac -classpath ".:/home/path/mail.jar:/home/path/servlet.jar:" MyJavaFile.java
Vous pouvez inclure les fichiers JAR à chaque compilation en définissant correctement la variable d'environnement "CLASSPATH". La variable d'environnement stockera le chemin où les fichiers jars et les classes qui doivent être utilisés pour compiler / exécuter n'importe quel fichier java. Vous n'aurez pas à inclure les fichiers JAR individuellement chaque fois que vous compilerez votre fichier.
Différentes machines ont différentes méthodes pour définir le chemin de classe comme variable d'environnement. Les commandes pour Windows, Linux, etc. sont différentes.
Vous pouvez trouver plus de détails dans ce 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
travaillé pour moi. J'utilisais mac. J'ai lu quelque part que «:» est utilisé pour unix.
.:
-on? désolé si c'est une question stupide, mais ce n'est pas évident pour moi.
javac -cp .:/home/path/mail.jar:/home/path/servlet.jar; MyJavaFile.java
Veuillez essayer sous Linux
javac -cp jarfile source file
EXEMPLE :-
javac -cp .:/jars/* com/template/*.java
.:/jars
remplacé par le répertoire dans lequel mes fichiers JAR sont situés, j'obtiens le message d'erreur javac: invalid flag: /location/of/first/jar/file.jar
.
La syntaxe fonctionnera sur la commande Windows DOS:
javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java
Essayez d'ajouter tous les fichiers jar de dépendance à votre chemin de classe via les paramètres de variable d'environnement ou suivez les étapes ci-dessous:
Définissez le chemin de classe pour vos fichiers jar de dépendance comme indiqué ci-dessous:
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;
Maintenant, vous pouvez compiler votre fichier java. (commande: javac YourJavaFile.java
)
J'espère que cela résoudra votre problème de dépendance.
Les étapes suivantes sont des étapes,
Copiez tous les jars et votre fichier .java dans un même dossier (il sera facile de mentionner les noms de fichiers au lieu de mentionner un long chemin. Bien que vous puissiez conserver jar et .java dans des dossiers séparés).
Compiler,
javac -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>.java
Éxécuter,
java -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>
J'espère que ça aide!
Cela créera un fichier .class:
javac -classpath "[jarname with specified path]" [java filename]
Cela exécutera le fichier de classe:
java -cp [jarname with specified path]: [java filename]
javac -classpath "/home/scorncer/Downloads/spark-core-2.3.jar" MyFile.java
et ** exécuter 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
Vous devez spécifier les dépendances au moment de la compilation ainsi qu'au moment de l'exécution
Pour compiler, utilisez ce format
javac -cp "*.jar;classfile_path" filename.java
Exemple:
javac -cp "ojdbc6.jar;c:\programs" Main.java
javac -cp jars/jar1:jars/jar2:jars/jar3 abc.java
Si vous utilisez Ubuntu:
/opt/JavaServices/sqlite $ export CLASSPATH=/opt/JarFiles/XXXX.jar:/opt/JarFiles/XXXX.jar:/opt/JavaServices/;javac SQLiteSample.java
Aller à l'emplacement du dossier (hors de la structure du package)
/opt/JavaServices $ export CLASSPATH=/opt/JarFiles/XXXXX.jar:/opt/JarFiles/XXXXX.jar:/opt/JavaServices/;java sqlite.SQLiteSample
Remarque: veuillez consulter les emplacements des fichiers et les noms des packages
Pour les fenêtres