これが私のディレクトリ構造です。
/user/a /user/b /user/b
フォルダー a、b、c 内に person.java ファイルがあります (これは同じファイルで、1 行の変更のみです。
今、私のシェルでは、私の/ user /ディレクトリにいて、やろうとしています
javac */person.java
シェルは次のエラーを返します。
person.java:14: クラスが重複しています: person
これを解決するものはありますか?
ここでの問題は、 javac がすべてを一度にコンパイルしようとするため、必然的にクラス定義が重複することにあると思います。
これを解決する簡単な方法は
find . -name '*.java' -exec javac {} \;
編集:
またはより正確に言うとfind . -name 'person.java' -maxdepth 2 -exec javac {} \;
私は小さなシェルスクリプトに行きます:
for f in */person.java; do
javac $file
done
1 行目でサブディレクトリ内のすべてのファイル person.java を検索し、2 行目でファイルをコンパイルします。