2009-10-14 48 views
2

編譯類我有兩個類Hello1和你好了,我打電話類Hello類中Hello1構造函數,但是當我試圖編譯Hello類命令編譯錯誤而在另一個

的javac Hello.java

我得到編譯時錯誤:

Hello.java:6:cannot find the symbol 
symbol: class Hello1 
location: class Hello 
Hello1=new Hello(); 
^ 
Hello.java:6:cannot find the symbol 
symbol: class Hello1 
location: class Hello 
Hello1=new Hello(); 
     ^

但是,當我試圖編譯命令編譯類:

javac Hello.java Hello1.java

它工作正常,但爲什麼我每次都必須使用此命令來編譯該類?爲什麼編譯器不能使用已編譯的.class Hello1文件,以便下次使用命令javac Hello.java。

+0

您是否嘗試將編譯好的Hello1類的類路徑傳遞給編譯器? – Tom 2009-10-14 17:30:25

+0

在你的例子中,有錯誤的行看起來很奇怪:Hello1應該是一個類沒有?請檢查 – fvu 2009-10-14 17:32:23

+0

謝謝!現在我明白我在做什麼錯了。 – Dusk 2009-10-14 17:32:49

回答

1

您需要將當前目錄添加到類路徑中,以便編譯器可以找到它。默認情況下,類路徑不包含當前的工作目錄,因此編譯器將不會看到已編譯的任何.class文件。爲此,編譯如下:

javac Hello.java -cp . 
+0

就像我想的那樣! – Tom 2009-10-14 17:34:16

1

您需要使用-cp設置classPath。

+1

從iPhone發佈並不是回答問題的最快方法:) – 2009-10-14 17:40:41