문제
내 디렉토리 구조는 다음과 같습니다.
/user/a/user/b/user/b
내부 폴더 A, B, C 파일 Person.java가 있습니다 (동일한 파일, 한 줄 수정입니다.
이제 내 쉘에서 내 / 사용자 / 디렉토리에 메신저를하고
javac */person.java
쉘은 다음 오류를 반환합니다.
person.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
첫 번째 줄은 모든 파일을 찾아서 하위 지사에서 두 번째 줄에서 파일을 컴파일합니다.
제휴하지 않습니다 StackOverflow