有没有办法将Eclipse报告编译错误设置为与javac相同?Eclipse编译问题
我偶然发现了一些在Eclipse中工作的情况,无法用javac编译。我知道eclipse使用ECJ,并且不能改变,但是可以在任何地方设置,那些无法用javac编译的东西在Eclipse中是编译错误? (因为几乎没有什么东西可以在Eclipse中编译错误,即使它们没问题)
示例来自@SuiteClasses({A.class,B.class,})
(最后一个逗号是问题),以至于我完全不明白的一般问题。
有没有办法将Eclipse报告编译错误设置为与javac相同?Eclipse编译问题
我偶然发现了一些在Eclipse中工作的情况,无法用javac编译。我知道eclipse使用ECJ,并且不能改变,但是可以在任何地方设置,那些无法用javac编译的东西在Eclipse中是编译错误? (因为几乎没有什么东西可以在Eclipse中编译错误,即使它们没问题)
示例来自@SuiteClasses({A.class,B.class,})
(最后一个逗号是问题),以至于我完全不明白的一般问题。
Eclipse使用ECJ进行编译,通过Java Builder负责编译和索引所有Java源文件,以便增加编译的容易性(使得报告错误更容易),除了帮助重构和搜索操作。
ECJ恰好是Java构建器使用的默认编译器;使用的编译器不能配置。一个不能改变它。但是,您可以尝试添加您自己的构建器,该构建器使用依赖Sun JDK的javac编译器的Ant构建脚本。
你可以让eclipse构建使用ant,这将反过来使用javac。
Eclipse编译器Java(ECJ)和Javac都基于Java语言规范(JLS),因此应报告相同的错误。
但是,有些情况下行为不同。有时候,原因就像任何大型软件中的情况一样,有时JLS有点含糊不清,导致两种编译器对它的解释稍有不同。有时ECJ是错误的,有时Javac是错误的。
如果您愿意,可以将change your Eclipse preferences更具限制性的javac
等同字样。这将产生警告或错误,你编译时定义的内容 - 你甚至可以定义错误/警告的一切!
我已经知道Eclipse使用ECJ,但是我没有意识到它与Sun的实现相比可以编译和不能编译的区别。我认为有一些标准或规范必须遵循。 – JasCav
是的,我遇到过与OP类似的问题。经验法则是Eclipse比javac/ant更宽容。因此,将编译代码提交给CVS可能会导致持续集成服务器在编译时生成失败。 –