質問
ここに私のディレクトリ構造があります。
/ user / a / user / b / user / b
フォルダa、b、c内にはperson.javaファイルがあります(同じファイルで、1行の変更のみです。
今、私のシェルで、/ user /ディレクトリでimを実行します。
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行目はファイルをコンパイルします。
所属していません StackOverflow