Linux mehrere Java-Datei zu kompilieren
Frage
Hier ist meine Verzeichnisstruktur.
/ user / a / User / b / User / b
innerhalb Ordner a, b, c eine Datei person.java ist (es ist die gleiche Datei, nur eine Zeile Änderung.
jetzt, auf meine Shell, im auf meinem / user / Verzeichnis und ich versuche zu tun,
javac */person.java
die Shell die folgenden Fehler zurück,
person.java:14: doppelte Klasse: Person
Gibt es etwas, das zu lösen?
Lösung
Ich denke, das Problem hier auch sein mag, dass javac versucht, alles auf einmal zu kompilieren, die in duplizierten Klassendefinitionen natürlich zur Folge hat.
Ein einfacher Weg, dies zu lösen wäre
find . -name '*.java' -exec javac {} \;
Edit:
oder um genauer zu sein find . -name 'person.java' -maxdepth 2 -exec javac {} \;
Andere Tipps
Ich würde für den kleinen Shell-Skript gehen:
for f in */person.java; do
javac $file
done
Die erste Zeile alle Dateien person.java in einem Unterverzeichnis finden, zweite Zeile, die Datei kompilieren.