2013-09-28 95 views
0

我想實現我的Java代碼爲這種接口的符號:Java編譯錯誤找不到接口

package PJ1; 

public class Fraction implements FractionInterface, Comparable<Fraction>{ 

現在,FractionInterface.class在同一目錄中Fraction.java文件,並將其也是包PJ1:

package PJ1; 

public interface FractionInterface{ 

然而,當我嘗試編譯我的Fraction.java文件,我得到以下錯誤:

D:\CSC220\PJ1\Fraction.java:36: error: cannot find symbol 
public class Fraction implements FractionInterface, Comparable<Fraction> 
           ^

我很難過,因爲我所有的相關文件都在同一個目錄中,我試圖將所有的類文件放在同一個包中。有任何想法嗎?

+0

正如你所說,文件是在同一目錄 - 然後檢查拼寫錯誤 – exexzian

+0

我檢查,並沒有拼寫錯誤。不過謝謝。 – blaughli

+0

第36行的錯誤點,所以你可以顯示更多的代碼? – pedromss

回答

1

我的猜測是這些文件不在PJ1這個相對於編譯器期望它們的目錄中。創建文件夾並將兩個文件移動到該位置。爲了使它更清楚一點,讓我們說你的文件夾結構看起來像這樣

myfolder 
+-PJ1 
    Fraction.java 
    FractionInterface.java 

然後,你需要從myfolder使用

javac PJ1\Fraction.java 
+0

謝謝,我想到了這一點,並嘗試過,但無濟於事。 – blaughli

+0

你正在編譯'PJ1'文件夾嗎? – Reimeus

+0

等一下,我認爲這個工作!我去了上面的一個目錄,並使用上面列出的命令。原來我有其他錯誤,所以編譯失敗,但我認爲它現在看到了接口。謝謝! – blaughli

0

嘗試編譯這樣編譯:

例如在C:你有兩個java文件 - Fraction.java和FractionInterface.java,您尚未創建包的任何文件夾還,然後嘗試爲:

c:> javac -d . *.java 

這將編譯生成所需的所有文件包。您無需手動創建任何文件夾。

如果您已經創建的文件夾的包,並且你已經在包說:

C:\ PJ1,你可以簡單地編譯使用javac爲:

c:\PJ1> javac *.java 

希望這將工作。

+0

謝謝,我得到它的工作(見上文)。雖然我不完全清楚爲什麼這個工作.. – blaughli

+0

好的。但我想讓你知道,你也可以使用帶-d選項的javac來自動創建包。這將減輕手動創建軟件包的負擔。 任何爲什麼它工作...你有什麼疑問/困惑? – santu

0

確保這兩個文件都在PJ1文件夾中並運行javac *.java