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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top