6

尽管存在明显的编译问题,我在 Eclipse(Helios)/STS 中有以下代码,它在执行 Run As> Java Application 时运行并打印控制台输出

public interface ITest{
    String func();
}

public static class Test implements ITest{
    void printFunc(){
        System.out.println("Inside Test Function");
    }
}

public static void main(String[] args) {        
    Test test = new Test();
    test.printFunc();
}

谁能查明这个 Eclipse 运行背后的原因。

注意:在外部执行 javac 显然无法编译。

4

2 回答 2

1

可能是您在出现错误之前成功地编写了该类。Eclipse 会在您编码时自动编译您的文件。就在这时,您碰巧遇到了错误。然后您决定作为 Java 应用程序运行,Eclipse 将运行最新编译的类。

我尝试了您的代码,实现了消除错误的必要方法,然后再次将其删除以恢复错误..果然,它打印出来了"Inside Test Function"。我也试过注释掉System.out.println("Inside Test Function");,它仍然打印出来。

在另一次尝试中,我创建了另一个类,添加了您的代码,然后运行(没有实现错误以避免自动编译),然后它打印出一个错误..

java.lang.NoSuchMethodError: main
Exception in thread "main" 
于 2012-10-10T10:58:43.493 回答
1

Eclipse 的 Java 编译器旨在处理易碎的非编译代码。它将向代码添加任何必要的东西以使其编译。

看到这个问题javac 和 Eclipse 编译器有什么区别?

于 2012-10-10T13:42:51.993 回答