Linux для компиляции нескольких файлов Java
Вопрос
вот моя структура каталогов.
/user/a/user/b/user/b
внутри папки a,b,c есть файл person.java (это тот же файл, только одна строка модификации.
теперь в моей оболочке я нахожусь в каталоге /user/ и пытаюсь сделать
javac */person.java
оболочка возвращает следующую ошибку:
человек.java:14:дубликат класса:человек
Есть ли что-нибудь, чтобы решить эту проблему?
Решение
Я думаю, что проблема здесь может заключаться в том, что javac пытается скомпилировать все за один раз, что, естественно, приводит к дублированию определений классов.
Простой способ решить эту проблему будет
find . -name '*.java' -exec javac {} \;
Редактировать:
Или если быть точнее find . -name 'person.java' -maxdepth 2 -exec javac {} \;
Другие советы
Я бы выбрал небольшой сценарий оболочки:
for f in */person.java; do
javac $file
done
Первая строка находит все файлы person.java в подкаталоге, вторая строка скомпилирует файл.