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

EclipseJDK设置如何影响系统的JDK设置,eclipse,macos,grails,java,Eclipse,Macos,Grails,Java,我试图在MacOSX上编译一个引用第三方JAR的Grails应用程序。虽然我的系统的JRE和JDK设置为Java 1.6,但我总是会遇到编译错误:Java.lang.UnsupportedClassVersionError:Java.class文件中的版本号不正确 当访问JAR中的类时。此外,在测试现有Grails应用程序时,还需要使用该应用程序的默认统计信息,其中显示该应用程序正在使用Java1.6运行。因此,除了尝试在Eclipse中更改Java设置之外,我真的没有更多的想法-我认为这很愚蠢

我试图在MacOSX上编译一个引用第三方JAR的Grails应用程序。虽然我的系统的JRE和JDK设置为Java 1.6,但我总是会遇到编译错误:Java.lang.UnsupportedClassVersionError:Java.class文件中的版本号不正确 当访问JAR中的类时。此外,在测试现有Grails应用程序时,还需要使用该应用程序的默认统计信息,其中显示该应用程序正在使用Java1.6运行。因此,除了尝试在Eclipse中更改Java设置之外,我真的没有更多的想法-我认为这很愚蠢,因为我没有使用Eclipse来开发这个应用程序-但是,瞧-现在,在命令行上编译我的应用程序工作得很好

有人能解释一下Eclipse在幕后做什么吗?
我以前手动设置过JAVA_HOME,但没有效果。

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

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

General > Java Installed JRE
默认情况下,如果您没有添加任何JRE,那么唯一声明的JRE将是用于启动eclipse的JRE,该JRE可以在您的应用程序中定义。 您可以添加任何其他需要的JRE,包括与您的项目兼容的JRE

之后,您需要在项目属性或常规首选项中检查使用了什么JRE,符合性级别是什么:


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

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

General > Java Installed JRE
默认情况下,如果您没有添加任何JRE,那么唯一声明的JRE将是用于启动eclipse的JRE,该JRE可以在您的应用程序中定义。 您可以添加任何其他需要的JRE,包括与您的项目兼容的JRE

之后,您需要在项目属性或常规首选项中检查使用了什么JRE,符合性级别是什么:


感谢您的快速回复,但我以前并没有在那个特定的项目中使用Eclipse—仅限命令行和TextMate!在这里,由于版本错误,编译无法工作,因为我将使用Java5运行Java6项目。但我没有,一切看起来都像Java6。但是我做了和你提到的一样的事情——我只是在Exclipse中更改了默认的JRE,但是没有将项目导入eclipse,也没有使用eclipse编译它。我仍然使用grails compile从命令行编译,现在编译突然成功,没有任何错误。听起来很奇怪。谢谢你的快速回复,但我以前并没有在那个特定的项目中使用Eclipse——只使用命令行和TextMate!在这里,由于版本错误,编译无法工作,因为我将使用Java5运行Java6项目。但我没有,一切看起来都像Java6。但是我做了和你提到的一样的事情——我只是在Exclipse中更改了默认的JRE,但是没有将项目导入eclipse,也没有使用eclipse编译它。我仍然使用grails compile从命令行编译,现在编译突然成功,没有任何错误。听起来很奇怪。>我刚刚更改了Excipe中的默认JRE:如果您引用的是声明安装的JRE,那么除了重新编译Eclipse中引用的现有项目之外,它不应该有任何副作用。。。但是你说你没有?那么为什么首先要打开Eclipse呢?打开Eclipse并在Eclipse中进一步开发是我的最后一个想法,因为在Eclipse中对环境变量的处理是不同的——但我甚至没有在Eclipse中编译它——我只是将Eclipse中的默认JRE设置更改为1.6,命令行JAVA_HOME在之前和之后都已经是1.6了然后在没有多大希望的情况下再次尝试在命令行上编译它,结果成功了。我无法解释自己。>我只是更改了Excipe中的默认JRE:如果您指的是声明安装的JRE,那么除了重新编译Eclipse中引用的现有项目之外,它不应该有任何副作用。。。但是你说你没有?那么为什么首先要打开Eclipse呢?打开Eclipse并在Eclipse中进一步开发是我的最后一个想法,因为在Eclipse中对环境变量的处理是不同的——但我甚至没有在Eclipse中编译它——我只是将Eclipse中的默认JRE设置更改为1.6,命令行JAVA_HOME在之前和之后都已经是1.6了然后在没有多大希望的情况下再次尝试在命令行上编译它,结果成功了。我无法解释我自己。