La compilation .fichiers java à partir de la ligne de commande - les bibliothèques externes, classpath
J'ai fait un projet dans Eclipse et je suis maintenant en essayant de faire en sorte que l' .fichiers java compiler en ligne de commande. J'ai essayé de le compiler à l'aide de javac *.java
dans le dossier avec tous mes .les fichiers java. Toutefois, cela entraîne des erreurs en raison d'une référence à une classe à partir d'une bibliothèque externe, Joda-time. J'ai le texte suivant .classpath fichier Eclipse réalisé pour le projet mais vous ne savez pas quoi faire avec elle.
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="lib" path="libs/joda-time-2.2.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
J'ai essayé de compiler avec javac -classpath *.java
mais cela ne génère plus d'erreurs. Mes fichiers source sont à l'intérieur d'un paquet de dossiers à l'intérieur d'un 'src' dossier. Où dois-je placer mon classpath fichier et mon joda-time-2.2.jar fichier, et comment puis-je obtenir tout ce à compiler?
[edit] je suis sous Windows 7
OriginalL'auteur false_azure | 2013-04-14
Vous devez vous connecter pour publier un commentaire.
À en juger par votre
.classpath
fichier, c'est probablement ce qui fonctionne:Cela suppose que vous exécutez dans le dossier de votre projet.
La
-d
drapeau ditjavac
où mettre les fichiers de sortie. Le-cp
drapeau est un raccourci pour-classpath
. J'ai eu ces paramètres en fonction de la.classpath
fichier dans votre question.En général, vous pouvez comprendre ce qui est nécessaire pour la lecture et la compréhension des erreurs dans la sortie de
javac
. Je parie que vous avez obtenu de nombreuxcannot find symbol
erreurs au début, parce que les "symboles" n'était pas sur votre chemin de classe, de sortejavac
ne pouvait pas savoir comment les trouver.Il est très important de comprendre comment construire vos projets, il est fondamental de connaissances et de compétences de base chez les programmeurs.
Une fois que vous comprenez comment construire manuellement comme cela, je vous recommande de regarder dans les outils de création, de préférence Maven, sinon Fourmi qui fait que la construction de la ligne de commande beaucoup plus facile. La majorité des projets Java utiliser ces outils pour construire leurs produits sur la ligne de commande et dans les systèmes de construction automatisée, l'intégration continue, et ainsi de suite.
Dois-je faire quelque chose de similaire pour le faire fonctionner? java -cp bin packagename.classname exécute le programme, mais dois-je spécifier un autre paramètre classpath pour inclure la bibliothèque?
Ignorer le commentaire précédent, j'ai tout compris. Suffit de séparer les chemins avec un point-virgule.
OriginalL'auteur janos
Éclipse de coeur de la compilation de vos programmes et les met dans la
bin
dossier. Alors que la ligne de commande compile dans le même répertoire lui-même. Si vous êtes à la compilation des fichiers dans le dossier src de lui-même, vous verrez qu'il est jonché de.class
fichiers maintenant. Le répertoire par défaut du compilateur Java dans Eclipse est votre projet. Pour la ligne de commande c'est le dossier dans lequel vos fichiers source sont situés.Donc, si vous avez un projet appelé
Project
sur votreDesktop
, puis le répertoire par défaut en raison de l'Éclipse pour les fichiers source dansProject\src
estC:\Users\UserName\Desktop\Project
mais si vous compiler en ligne de commande puis le répertoire par défaut estC:\Users\UserName\Desktop\Project\src
.Pour obtenir le répertoire par défaut par programmation, utilisez ceci :
System.out.println("System.getProperty ("user.dir")");
Maintenant, si vous avez besoin de compiler en ligne de commande, je vous suggère de mettre la
.jar
fichier dans votresrc
dossier.Cependant, je ne pense pas que vous avez besoin de la
.classpath
fichier. Ici est ce que c'est.OriginalL'auteur Karthik Balakrishnan