2008-09-26 119 views
1

這裏是我的目錄結構。linux編譯多個java文件

/用戶/一個 /用戶/ B /用戶/ B

文件夾內,B,C有一個文件person.java(它是同一個文件,只是一個行修改。

現在,在我的殼,IM在我的/用戶/目錄下,我嘗試做

javac */person.java 

外殼返回以下錯誤,

person.java:14 :重複類:人

有什麼可以解決這個問題嗎?

+0

這些類是否完全相同,頂部有相同的包裝定義? – 2008-09-26 08:48:45

回答

8

我認爲這裏的問題可能是,javac試圖一次性編譯所有東西,這自然會導致重複的類定義。

一個簡單的方法來解決,這將是

find . -name '*.java' -exec javac {} \;

編輯:

或者更精確地說find . -name 'person.java' -maxdepth 2 -exec javac {} \;

+0

這裏您編譯所有以.java結尾的文件,不僅是person.java文件。你也不會限制到一個子目錄。 – PierreBdR 2008-09-26 08:59:05

1

我會去小的shell腳本:

for f in */person.java; do 
    javac $file 
done 

第一行找到所有文件person.java在一個子目錄下,第二行編譯該文件。

+0

在一個外殼,有沒有一個好的輸入上面的循環「在」控制檯, 所以我沒有創建一個單獨的.sh文件? – freshWoWer 2008-09-27 19:32:54