2011-06-13 74 views
-2

我無法通過CMD編譯實現接口的類。 但它適用於任何Java IDE。 有什麼建議嗎? 謝謝。無法編譯實現了接口類的java類

這是代碼。

//Interface (MyInterface.java) 
public interface MyInterface{ 
    public int add(int a, int b); 

} 


//(MyInterfaceImpl.java) 
public class MyInterfaceImpl implements MyInterface { 

    public int add(int a, int b){ 
    return a + b; 
    } 
} 


\>javac MyInterface.java 
\>javac MyInterfaceImple.java 
MyInterfaceImpl.java:2: cannot file symbol 
symbol: class MyInterface 
public class MyInterfaceImpl implements MyInterface{ 

1 error 
+0

@Nanne:非常感謝。我不知道。我知道了。謝謝!!! – sura2k 2011-06-13 09:46:49

+0

@Nanne:沒有謊言。現在我計算出了 – sura2k 2011-06-13 09:47:40

回答

2

看起來你的接口類是物理命名MyInterfaceImple.java但你的代碼是指它作爲MyInterfaceImpl - (沒有電子)。

代碼中使用的名稱需要與物理文件相匹配。同時檢查這兩個類是否在您的類路徑中。

3

你有一個尾隨e這裏

javac MyInterfaceImple.java 
        ^

但不是在這裏

//(MyInterfaceImpl.java) 

這可能是一個問題。


此外,如果您的接口/類駐留在一個包中,這可能是一個問題。如果是這樣,請包括package行和目錄結構。


一切正常工作我的機器。這裏有一個演示:

[email protected]:~/tmp/java$ cat -> MyInterface.java 
    //Interface (MyInterface.java) 
    public interface MyInterface{ 
     public int add(int a, int b); 

    } 
[email protected]:~/tmp/java$ cat -> MyInterfaceImpl.java 
    //(MyInterfaceImpl.java) 
    public class MyInterfaceImpl implements MyInterface { 

     public int add(int a, int b){ 
     return a + b; 
     } 
    } 

[email protected]:~/tmp/java$ 
[email protected]:~/tmp/java$ ls 
MyInterfaceImpl.java MyInterface.java 
[email protected]:~/tmp/java$ javac MyInterface.java 
[email protected]:~/tmp/java$ javac MyInterfaceImpl.java 
+0

+1,儘管我在你之前發現了錯字。 ;) – Mikaveli 2011-06-13 08:31:39

+0

@Mikaveli:'e'是一個錯誤,併爲此感到遺憾。其實這是事實。我爲我的任務之一做了一個RMI和RPC應用程序,它運行良好。大約2個月後(昨天)我再次跑了另一個目的。 RMI不起作用。在我發現由於界面導致的錯誤之後。我只是創建一個演示並運行它。錯誤仍然存​​在。但是用一個IDE(Netbeanse或者某物)再次工作。在Linux中,它運行良好。原始程序有一個目錄結構,它使用.bat或.sh運行。這就是爲什麼我在這裏提供示例代碼。 – sura2k 2011-06-13 09:34:05

+0

@ sura。別擔心。如果你接受一些老問題的答案,大多數人都不會讓你失望。 – Mikaveli 2011-06-13 09:36:11