2011-06-13 77 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