2012-04-26 96 views
0

我正在將一個linux工具移植到windows。該工具在Linux系統上工作正常,但現在在Windows上,我得到這個「無法找到符號」的錯誤。java導入「找不到符號」

我這個小主類:

package foo; 

import foo.bar; 

public class Main { 
    public static void main(String[] args) throws Exception { 
     bar.getInstance(); 
    } 
} 

,現在出現的錯誤,而這樣做的javac Main.java:

進口foo.bar:找不到符號 ^ 符號:類吧 location:package foo

Main.java和bar.java在同一個目錄下。 我錯過了什麼?

+0

嘗試javac * .java你會得到相同的結果嗎? – scrappedcola 2012-04-26 18:59:11

回答

5

一方面,bar應該叫Bar是地道......

理想情況下,你應該從目錄編譯以上 Main.java,像這樣:

javac -d out foo/Main.java foo/Bar.java 

這會創建一個名爲「out」的目錄,其中包含另一個目錄「foo」,該目錄將包含Main.class和Bar.class。所以,再次從父目錄,你可以運行:

java -cp out foo.Main 

源位置不相匹配的封裝結構。您可以只需調用javac的含有Main.javaBar.java這樣的目錄:

javac -cp out Main.java Bar.java 

(然後以同樣的方式像以前一樣運行它),但它通常是一個更好的主意來構建根據您的源代碼包裝。

您可能更容易使用IDE(例如Eclipse或NetBeans),它將爲您處理所有編譯等。如果你想想要從命令行建立一個真實的項目,你應該看看使用完整的構建系統,如Ant或Maven。

(請注意,你會得到同樣的錯誤在Linux上的Windows,如果你試圖以同樣的方式進行編譯。)

+0

Thx爲快速解決方案。 – MindlessMaik 2012-04-26 19:17:11

1

我想你需要嘗試編譯富之前正確編譯的類吧,這是,在適當的包結構中生成類文件。