Вопрос

вот моя структура каталогов.

/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 в подкаталоге, вторая строка скомпилирует файл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top