【问题标题】:How is the Eclipse JDK setting affecting the system's JDK settingEclipse JDK设置如何影响系统的JDK设置
【发布时间】:2010-11-28 17:26:56
【问题描述】:

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

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

【问题讨论】:

  • > 我刚刚更改了 Exclip 中的默认 JRE:如果您指的是不应该有任何副作用的声明的“已安装 JRE”(除了重新编译 Eclipse 中引用的现有项目......但是你说你没有?那么为什么首先打开 Eclipse?)
  • 打开 Eclipse(以及在 Eclipse 中进一步开发)是我的最后一个想法,因为 env var 在 eclipse 中的处理方式不同 - 但我什至没有想到在 Eclipse 中编译它 - 我只是将 Eclipse 中的默认 JRE 设置更改为 1.6(命令行 JAVA_HOME 之前已经是 1.6),然后尝试(没有太大希望)再次在命令行上编译它 - 它工作正常。我无法解释自己。

标签: eclipse macos grails java


【解决方案1】:

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

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

General > Java Installed JRE

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

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

【讨论】:

  • 感谢您的快速回复,但我之前没有将 Eclipse 用于该特定项目 - 仅限命令行和 TextMate!在这里,由于“错误版本”错误,编译不起作用,因为我将使用 Java 5 运行 Java 6 项目。但我没有——一切看起来都像 Java 6。但后来我做了你提到的同样的事情——我只是更改了 Exclipse 中的默认 JRE,但没有将项目导入 eclipse,也没有使用 eclipse 编译它。我仍在使用“grails compile”从命令行编译 - 现在编译突然成功,没有任何错误。听起来很奇怪。
猜你喜欢
  • 2011-06-12
  • 2012-11-18
  • 1970-01-01
  • 2014-08-06
  • 1970-01-01
  • 2018-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多