46

我正在尝试让新的 1.7 JDK与 Eclipse 一起使用(这是 Oracle 的官方版本)。

我并不是说只是将 Eclipse 指向它,以便您可以在项目中使用它,这很好用,但实际上使 Eclipse 使用 1.7 JVM 运行。

我已将新的 JVM 移到 Java Preferences 列表的顶部,但 Eclipse 仍然从 1.6 开始。如果我在 Java 首选项中禁用 1.6,我会在双击 Eclipse 后立即看到一个对话框,显示“无法创建 Java 虚拟机”。

编辑:我在-vmargs之前将以下内容添加到我的eclipse.ini中:

-vm
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/bin/java

然而,在 Eclipse 安装详细信息对话框中,我仍然看到:

java.runtime.version=1.6.0_31-b04-415-11M3646

编辑 2:这里是我的 eclipse.ini 文件的内容:https ://gist.github.com/2512578

4

14 回答 14

35

还有另一种方法。请在 .ini 文件中的 -vmargs 之前添加以下两行:

-vm 
{YOUR_JAVA_7_HOME}/jre/lib/server/libjvm.dylib

(记住这些需要是单独的行)并在“Info.plist”文件中添加相应的条目(在“Eclipse”键下添加或修改数组项 - 每个字符串子元素对应一个命令行参数)。

...
<key>Eclipse</key>
<array>
<string>-vm</string>
<string>/{MY_VM_HOME}/jre/lib/server/libjvm.dylib</string>
...
</array>

-vm {YOUR_JAVA_7_HOME}/lib/server/libjvm.dylib或者,从终端运行 eclipse 时只需使用命令行参数。

于 2013-02-08T10:58:38.910 回答
31

我刚刚向https://bugs.eclipse.org/bugs/show_bug.cgi?id=339788添加了关于无法在 OS X 上将新的 Oracle JDK 与 Eclipse 一起使用的评论。在 eclipse.ini 中使用 -vm 选项确实不行。我发现解决此问题的唯一方法是使用以下 shell 脚本:

#!/bin/sh
#
export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
LAUNCHER_JAR=/Applications/eclipse/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar

java \
-showversion \
-XX:MaxPermSize=256m \
-Xms1024m \
-Xmx1024m \
-Xdock:icon=/Applications/eclipse/Eclipse.app/Contents/Resources/Eclipse.icns \
-XstartOnFirstThread \
-Dorg.eclipse.swt.internal.carbon.smallFonts \
-Dosgi.requiredJavaVersion=1.5 \
-jar $LAUNCHER_JAR

使用http://mathiasbynens.be/notes/shell-script-mac-apps上的步骤,我将上面的脚本变成了一个可以保留在我的扩展坞上的应用程序。

于 2012-04-29T18:42:58.510 回答
8

显然,开普勒的修复应该会在下一个服务版本中发布。

同时,此错误中提到了一种解决方法,它允许您运行 eclipse,而无需从 Apple 安装 JRE 1.6:https ://bugs.eclipse.org/bugs/show_bug.cgi?id=411361#c20

这将允许您从 finder 或聚光灯而不是扩展坞启动 eclipse。

我刚刚在 OS X Mavericks 上对此进行了测试,它在更新期间丢失了 jre 6,并在您尝试启动 Eclipse 时要求安装它。我当然安装了最新的 Oracle JDK 1.7。

拒绝这样做,然后解决这个问题,在 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Info.plist 中编辑 jvm 功能

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

使用此修复程序,您无需在 eclipse.ini 中指定 vm。

于 2013-10-26T09:51:06.390 回答
6

在上面的 Mac 上似乎不起作用。对我来说,使用 Eclipse KEPLER 它通过添加

-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/

在我的 eclipse.ini 结束时(没有那个换行符)

这终于改变了我的 Eclipse Installation Details > Configuration from

-vm /System/Library/Frameworks/JavaVM.framework

-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib

不适用于我的 Eclipse INDIGO 安装。

于 2013-10-24T13:40:35.917 回答
3

安装Oracle JRE和JDK后,打开Eclipse.app里面的Info.plist(右键,显示内容),粘贴到“Eclipse”后面“-vm/System/Library/Frameworks/JavaVM.framework/JavaVM”

我的看起来像这样:

    <key>Eclipse</key>
    <array>
        <string>-vm</string><string>/System/Library/Frameworks/JavaVM.framework/JavaVM</string>
        <string>-keyring</string><string>~/.eclipse_keyring</string>
        <string>-showlocation</string>
    </array>

如果这样做,您将不必在升级 JRE 后更新文件。

于 2013-12-16T10:59:48.453 回答
2

只需编辑

Eclipse.app/Contents/Info.plist

您必须使用特定的 Java 版本(而不是平台的默认版本)取消注释以下选项之一:

<string>-vm</string>
<string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java</string>

这帮助我从 1.7.0 回滚到 1.6.0。

于 2013-11-05T11:35:17.940 回答
2

检查您的 java_home 在 /usr/libexec/java_home 中是否正确;

不要更改您的 eclipse.ini 并编辑 Info.plist 文件并更改/添加此行 <string>-vm< /string><string>/Library/Java/JavaVirtualMachines/'jdk-version-your'/Contents/Home /bin/java< /string> 并保存。打开 Eclipse 并完成!

对我来说效果很好,并且使用 javafx e(fx)clipse!

PS:在 Mac OS X 系统上,您可以在 Finder 中右键单击(或 Ctrl+单击)Eclipse 可执行文件找到 Info.plist,选择 Show Package Contents,然后在 Contents 文件夹中找到 Info.plist。

于 2014-02-16T17:47:09.873 回答
1

假设您使用的是支持 Java 7 的 Eclipse 版本(我相信任何 3.7 及更高版本),您应该能够在 eclipse.ini 文件中指定 Eclipse 使用的 JVM。如果你打开它,你应该会看到一个“-vm”属性,后面跟着你当前使用的 JVM 的目录。您应该能够将此目录更改为您的 1.7 安装。

注意:我没有在 Mac 上使用过 Eclipse,所以配置文件的名称可能不同。

于 2012-04-27T14:55:42.660 回答
1

截至 2012 年 4 月 28 日,它是 Eclipse 3.7 SR2 启动器应用程序中的一个已知未解决错误。

https://bugs.eclipse.org/bugs/show_bug.cgi?id=339788

于 2012-04-28T18:24:43.850 回答
1

我刚遇到这个问题。我通过降级和下载 JDK 7 来修复它。

于 2015-07-04T05:59:14.107 回答
0

下载并安装 Titanium 后,我遇到了类似的问题。我的 eclipse 工作了,但 Titanium 没有,所以我最终查看了配置文件,看看有什么不同

日食有

eclipse.p2.profile=epp.package.standard

钛有

eclipse.p2.profile=profile

更改上述内容以匹配 Eclipse 配置后,我能够启动 Titanium

于 2013-11-13T20:06:21.957 回答
0

只需点击几下,这对我来说就解决了。转到Eclipse - > Preference - > Java - > Installed JRE - > Add button - > Standard VM并引用 JRE Home 路径/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home并添加自定义名称。给定 JRE 路径后,将自动添加所需的 Jar 文件,然后单击完成。请确保 jdk 已经安装。

于 2014-05-06T11:05:53.113 回答
0

对我来说,它在https://bugs.eclipse.org/bugs/show_bug.cgi?id=411361#c25中提出了修复:

#!/bin/bash

# Workaround for https://bugs.eclipse.org/411361
# "[Mac] Kepler doesn't launch without JRE 6, even if JDK 7 is installed"
#
# Put this launch.command into the same folder as Eclipse.app.
#
# If necessary, adapt JAVA_EXECUTABLE to the full path to your Java executable:

JAVA_EXECUTABLE=java

cd "$(dirname "$0")"

$JAVA_EXECUTABLE \
-Djava.library.path="$(echo plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_*/eclipse_*.so)" \
-Xms512m \
-Xmx2048m \
-Xdock:icon=Eclipse.app/Contents/Resources/Eclipse.icns \
-XstartOnFirstThread \
-Dorg.eclipse.swt.internal.carbon.smallFonts \
-XX:MaxPermSize=256m \
-jar "$(echo plugins/org.eclipse.equinox.launcher_*.jar)"  \
-os macosx \
-ws cocoa \
-arch x86_64 \
-showsplash \
-name Eclipse \
--launcher.appendVmargs \
-debug \
-showlocation \
-consolelog
于 2014-09-05T08:39:02.990 回答
0

默认情况下,您的 MacOSX 带有不适合 Eclipse 的 JRE 1.6.0。要解决问题,您还需要安装已经包含 JRE 1.7.0 的 JDK 7。

这是您可以下载的链接。

只需选择 Java SE Development Kit 7u79 下的 MacOS X 版本并安装即可。

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

安装此软件包后,Eclipse 将无需任何修改即可启动。

于 2015-07-02T09:46:46.697 回答