Eclipse Kepler在OS X Mavericks上请求Java SE 6

86
我刚刚完成了OS X Mavericks的全新安装,然后下载了Eclipse Kepler,但是如果我执行它,就会出现这个消息:要求我安装Runtime Java SE 6;我已经安装了Java 7,如果我在那个对话框中按“Install”按钮,它会下载并安装它,然后再次打开Eclipse,该对话框会再次出现。如何解决?

我之前在早期的OSX版本中遇到过这个错误,你必须回滚到JDK 6,然后再回到7。很麻烦,我知道。 - MLProgrammer-CiM
2
如果您已经安装了JRE,您应该能够从“首选项->Java->已安装的JRE”中选择该JRE,然后将JRE 7添加到已安装的JRE列表中-我想这应该可以解决问题... 我猜如果您根本无法打开Eclipse,那么这并没有什么帮助-是这种情况吗? - Darwind
1
@Darwind 我无法打开Eclipse...如果我双击Eclipse图标,会出现那个对话框... - Piero
1
我在其中一个Eclipse RCP中被提示了一次(而另一个我之前启动的没有!),但它再也没有提示过。 - greg-449
2
它可以工作了,在安装了Yes之后,我重新启动了电脑,现在可以使用了! - Piero
显示剩余2条评论
7个回答

208
这在一定程度上是由于Oracle未提供JRE8虚拟机能力的定义所致。
如果您不想安装JRE6,而只想使用JRE8,且不将其链接到JRE6,则可以执行以下操作:
将位于以下路径的 Info.plist 文件复制到例如 ~/Downloads/ 中:
/Library/Java/JavaVirtualMachines/jdk.1.8.<…>/Contents/

然后替换

<key>JVMCapabilities</key>
 <array>
  <string>CommandLine</string>
 </array>

以下是:

<key>JVMCapabilities</key>
 <array>
  <string>JNI</string>
  <string>BundledApp</string>
  <string>CommandLine</string>
 </array>

然后将文件复制回其原始位置(需要管理员权限)。 为了使此更改生效,您需要注销您的帐户(然后重新登录)或重新启动计算机。 Java 6的对话框不应再出现,使用JRE8(或JRE7)时Eclipse应该正常启动。 对于任何最初要求Java的其他应用程序也是如此,例如Adobe的Creative Suite。

相关的是,似乎即使通过“系统偏好设置”中的Java首选项面板进行更新,此plist更改仍会保留。

如果仍无法工作,您可能需要添加一些文件夹和符号链接(详情):

sudo mkdir -p /Library/Java/JavaVirtualMachines/jdk1.8.0_*.jdk/Contents/Home/bundle/Libraries
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_*.jdk/Contents/Home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_*.jdk/Contents/Home/bundle/Libraries/
sudo mkdir -p /System/Library/Java/JavaVirtualMachines/1.6.0.jdk
sudo mkdir -p /System/Library/Java/Support/Deploy.bundle

之后我遇到了“应用程序无法打开,因为它来自未知开发者”的错误,以下问题有解决方案:https://dev59.com/AWIk5IYBdhLWcg3wI7EF - Jonoabroad
6
我可以确认绝对不需要重新启动。我刚刚注销并重新登录了。可能只需重启Finder,甚至无需注销即可完成,但我没有测试过。 - Carlo
5
重启Finder解决了我的问题。 - Trevor Dixon
7
起初,这给了我“无法创建Java虚拟机”错误的Eclipse提示,但那是因为我的 /usr/bin/java 符号链接到另一个1.7版本(而不是 /Library/Java... 中的版本,而是 /Library/Internet/... 插件中的版本)。修复这个链接后,这对我非常有效 - 我希望我能给两个赞! - sage
2
解释在http://apple.stackexchange.com/questions/136975/lsopenurlswithrole-failed-with-error-10810中:错误发生是因为JVM无法启动 - Java应用程序本身已经硬编码为加载libserver.dylib。该文件存在于Java 1.6及更早版本中,但不存在于Java 1.7及以上版本中。解决方案是手动将库(位于Contents / Home / jre / lib / server / libjvm.dylib中)建立符号链接到预期位置。这是一个丑陋的hack,但解决了我的问题。 - Albert Godfrind
显示剩余8条评论

7
为了能够使用Java 7(Oracle)运行Eclipse,我使用以下文件启动Eclipse:eclipse / Eclipse.app / Contents / MacOS / eclipse。默认情况下,“eclipse”文件夹包含此文件的别名。因此,您只需要双击名为“eclipse”的别名即可。
此外,Oracle警告称,在OS X上,Apple已禁用Oracle的Java版本7u25及以下版本(请参见here)。在发现使用Java 7启动Eclipse的方法之前,我已经升级到了最新的JDK版本。因此,我不知道升级是否必要。

7

我在安装Mavericks系统后遇到了这个问题。通过从苹果下载http://support.apple.com/kb/dl1572安装Java,我成功地解决了它。

希望这能帮到你。


7
这只是重新安装Java 6。OP要求找到一种使用Java 7作为默认版本的方法。 - Ethan Reesor

3

1

在我的情况下,使用Eclipse 4.5.1 Mars(从eclipse.org下载的OS X安装程序)和OS X El Capitan


只是补充一下这个答案 - JRE 是不够的。 你需要安装 JDK,然后一切都好了。 - Petr Urban

1
在MAC OS X上,使用Oracle的.dmg下载安装JRE 7后,打开Eclipse时,它仍然指向我的旧版JRE 6。在进行了许多谷歌搜索并来到这里后,我绝望地在Eclipse中点击了“搜索”-->“首选项”-->“已安装的JRE”,然后神奇地发现它捕获了JRE 7。

1

我碰巧在没有像上面建议的过程的情况下使其运行起来了。我把Eclipse文件夹删除,然后从回收站中将其复制回来。请验证它是否对你有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接