Comment inclure des fichiers jar avec un fichier java et compiler dans l'invite de commande
J'ai 3 fichiers jar et un .fichier java qui dépend de ces fichiers jar. Comment puis-je compiler le .fichier java avec ces fichiers jar en utilisant une invite de commande?
10 answers
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 jars chaque fois que vous compilez en définissant correctement la variable d'environnement "CLASSPATH". La variable d'environnement stockera le chemin où les jars et les classes qui doivent être utilisés pour compiler/exécuter n'importe quel fichier java. Vous n'aurez pas à inclure les pots individuellement chaque fois que vous vous compilez fichier.
Différentes machines ont différentes méthodes pour définir le classpath en tant que 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
Veuillez essayer sous Linux
javac -cp jarfile source file
EXEMPLE: -
javac -cp .:/jars/* com/template/*.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:
- Ouvrir l'invite de commande.
- Changer le répertoire à l'emplacement de votre java le fichier que vous souhaitez compiler.
-
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 dépendance question.
La syntaxe fonctionnera sur la commande Windows dos:
javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java
Cela va créer .fichier de classe:
javac -classpath "[jarname with specified path]" [java filename]
Cela exécutera le fichier de classe:
java -cp [jarname with specified path]: [java filename]
Essayez Ceci.
javac -cp .:jars/jar1:jars/jar2:jars/jar3 com/source/*.java
Les étapes suivantes sont,
Copiez tous les pots et votre .fichier java dans un même dossier (Il sera facile de mentionner les noms de fichiers au lieu de mentionner le chemin long. Bien que vous puissiez garder jar et .java dans des dossiers séparés).
-
Pour compiler,
javac -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>.java
-
À exécuter,
java -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>
J'espère que cela aide!
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 paquet)
/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 paquets
Vous devez spécifier les dépendances au moment de la compilation, ainsi que l'exécution
Pour compiler, utilisez ce format
javac -cp "*.jar;classfile_path" filename.java
Exemple:
javac -cp "ojdbc6.jar;c:\programs" Main.java
Quelques fois, le changement suivant fonctionne:
java -cp ".;%CLASSPATH%" classfilename
Remarque: SOUS Windows. Pour linux, utilisez plutôt $CLASSPATH
.