阻止Eclipse为无法编译的代码生成字节码

时间:2014-02-28 22:13:13

标签: java eclipse

Eclipse愉快地为具有编译错误的Java类生成字节码。有问题的方法只是在运行时调用时抛出异常。

有没有人知道如何在编译错误出现时阻止Eclipse生成字节码?在出现错误的情况下,我宁愿没有可运行的代码。

例如,请考虑以下代码:

public class Err {
  public static void main(String[] args) {
    methodWithoutCompilationError();
    // methodWithCompilationError();
  }

  private static void methodWithoutCompilationError() {
    System.out.println("No error here, folks.");
  }

  private static void methodWithCompilationError() {
    System.out.println("This method doesn't compile." + );
  }
}

即使编译错误,它运行正常。只有当我取消注释main的第二行时才会看到编译时出现问题。

3 个答案:

答案 0 :(得分:1)

Eclipse执行此操作的原因是编译错误可能通过编辑另一个java源文件来解决。例如,如果对另一个类中的方法名称的引用拼写错误,则修复可能是您更正了引用的拼写,或者修复可能是您更改方法的名称。 Eclipse不知道您选择这样做,因此它会在您决定更改为其他文件时编译引用类。我甚至不确定它能否知道何时再次编译所有类。

因此,每当您更改源文件时,Eclipse都会尽可能地编译已编辑的java源。

答案 1 :(得分:0)

我猜你在某些时候启用了“如果项目包含错误则继续启动”选项。尝试将其设置为“提示”:

enter image description here

答案 2 :(得分:0)

Eclipse compiler preferences - Errors/Warnings

尝试检查“将上述错误视为致命的编译错误(使编译的代码不可执行)”复选框。