Comment compiler tous les fichiers du répertoire vers des fichiers * .class?Création d'un package Java (javac pour tous les fichiers)
Répondre
Eh bien, cela semble assez évident, donc je manque peut-être quelque chose
javac *.java
(avec des références de bibliothèque appropriée, etc.)
Ou peut-être:
javac -d bin *.java
à javac créer la bonne structure de répertoire pour la sortie.
Étiez-vous à la recherche de quelque chose de plus sophistiqué? Si oui, pourriez-vous donner plus de détails (et aussi sur quelle plate-forme vous êtes)?
Voici un fragment de code que j'utiliser pour construire un projet complet où, comme d'habitude, les fichiers source sont dans une hiérarchie profondément imbriquées et il y a beaucoup de fichiers .jar qui doivent aller dans le chemin de classe (nécessite des utilitaires UNIX):
CLASSPATH=
for x in $(find | grep jar$); do CLASSPATH="$CLASSPATH:$x"; done
SRC=$(find | grep java$)
javac -cp "$CLASSPATH" $SRC
Encore une autre façon à l'aide « trouver » sous UNIX est décrit ici:
http://stas-blogspot.blogspot.com/2010/01/compile-recursively-with-javac.html
les deux commandes suivantes compileront tous les fichiers .java contenus dans le répertoire ./src
et ses sous répertoires:
find ./src -name *.java > sources_list.txt
javac -classpath "${CLASSPATH}" @sources_list.txt
En premier lieu, find
génère sources_list.txt
, un fichier qui contient les chemins d'accès aux fichiers source Java. Ensuite, javac
compile toutes ces sources en utilisant la syntaxe @sources_list.txt
.
Envisagez d'améliorer votre publication car votre réponse est essentiellement un lien. Voir: [Les réponses qui contiennent juste des liens ailleurs sont-elles vraiment de "bonnes réponses"?] (Http://meta.stackexchange.com/q/8231/156620) et [Pourquoi la liaison est-elle mauvaise?] (Http: //meta.stackexchange .com/q/7515/156620) –
Belle solution. Vous ignorez le fichier temporaire en utilisant/dev/stdin cependant. c'est à dire. 'find ./src -name * .java | javac -classpath "$ {CLASSPATH}" @/dev/stdin' – Dunes
1) voir makefile (ou fourmi ou maven ou ....) 2) Non – KevinDTimm