Eclipse JDK设置如何影响系统的JDK设置

我试图在Mac OSX上编译引用第三方JAR的Grails应用程序。 虽然我的系统的JRE和JDK设置为Java 1.6,但我总是遇到Compilation error: java.lang.UnsupportedClassVersionError: Bad version number in .class file访问JAR中的类时Compilation error: java.lang.UnsupportedClassVersionError: Bad version number in .class file 。 此外,在测试现有Grails应用程序时,应用程序的默认统计信息显示它正在运行Java 1.6。 所以我真的没有比尝试改变Eclipse中的Java设置更多的想法 – 我认为这是愚蠢的,因为我没有使用Eclipse来开发这个应用程序 – 但是瞧 – 现在编译我的应用程序的命令线路工作得很好!

谁能解释一下Eclipse在幕后做了什么? 我之前手动设置了JAVA_HOME没有任何效果。

用于启动eclipse的JDK(JAVA_HOME)不一定是用于编译项目的。

要查看您可以为项目选择的JRE,请检查首选项

 General > Java Installed JRE 

默认情况下,如果您尚未添加任何JRE,则声明的唯一一个将用于启动eclipse(可以在您的eclipse.ini定义)。
您可以添加任何其他所需的JRE,包括与您的项目兼容的JRE。

http://help.eclipse.org/juno/topic/org.eclipse.jdt.doc.user/tasks/images/task-add_jre_std_vm.PNG

之后,您需要检查项目属性(或一般首选项)中使用的JRE,以及合规级别:

http://www.standartux.fr/public/Java/Preferences.png