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

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

问题描述:

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

任何人都可以解释一下Eclipse在幕后做了什么吗? 我以前手动设置了JAVA_HOME,没有任何效果。

+0

>我刚换Exclipe中的默认JRE:如果您引用的声明“安装的JRE”不应该有任何副作用(除了重新编译在Eclipse中引用的现有项目...但是您说没有?那么为什么Eclipse会在第一个地方?) – VonC 2009-09-16 08:34:08

+0

打开Eclipse(和进一步开发t)是我在eclipse中处理env变量时的最后一个想法 - 但我甚至没有在Eclipse中编译它 - 我只是将Eclipse中的默认JRE设置更改为1.6(命令在线JAVA_HOME已经是1.6之前),然后尝试(没有多少希望)再次在命令行上编译它 - 并且它工作正常。我无法解释我自己。 – david 2009-09-16 09:18:19

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

要了解JRE你Y可以为您的项目选择,检查喜好

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

+0

感谢您的快速回复,但我之前并未使用Eclipse作为特定项目 - 仅命令行和TextMate!在这里编译不起作用,因为我会用Java 5运行一个Java 6项目的“错误版本”错误。但是我没有 - 所有东西看起来都像Java 6一样。但是接下来我做了和你提到的一样的东西 - 我只是改变了Exclipse中的默认JRE,但没有将项目导入到eclipse中,也没有使用eclipse编译它。我仍然使用“grails compile”从命令行编译 - 现在编译突然成功,没有任何错误。听起来很奇怪。 – david 2009-09-16 08:21:38