如何使用Oracle针对Mac的新1.7 JDK运行Eclipse?

时间:2012-04-27 14:40:06

标签: java eclipse macos

我正在尝试让new 1.7 JDK使用Eclipse(这是Oracle的正式版本)。

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

我已经将新的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

15 个答案:

答案 0 :(得分:36)

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

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

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

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

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

答案 1 :(得分:32)

我刚刚向https://bugs.eclipse.org/bugs/show_bug.cgi?id=339788添加了关于无法在OS X上使用Eclipse的新Oracle JDK的注释。在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上的步骤,我将上面的脚本转换为可以保留在我的底座上的应用程序。

答案 2 :(得分:9)

显然有一个Kepler的修复程序应该在下一个服务版本中出现。

与此同时,此错误中提到了一种解决方法,允许您在不安装Apple的JRE 1.6的情况下运行eclipse:https://bugs.eclipse.org/bugs/show_bug.cgi?id=411361#c20

这将允许您从取景器或聚光灯发射日食,但不能从码头发射。

我刚刚在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。

答案 3 :(得分:6)

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

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

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

这最终改变了我的Eclipse安装细节&gt;配置来自

  

-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安装确实

答案 4 :(得分:3)

安装Oracle JRE和JDK后,在Eclipse.app中打开Info.plist(右键单击,显示内容)并在“Eclipse”之后粘贴 “-vm /系统/库/框架/ 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后不必更新文件。

答案 5 :(得分: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。

答案 6 :(得分:2)

检查/ usr / libexec / java_home中的java_home是否为corrento;

请勿更改您的eclipse.ini并编辑Info.plist文件并更改/添加此行&lt;串GT; -vm&LT; /串GT;&LT;串&GT; /图书馆/的Java / JavaVirtualMachines / 'JDK版本,你的'/内容/首页/斌/ Java和LT; /串GT; 并保存。打开Eclipse并完成!

对我而言,它运作良好,并使用javafx e(fx)clipse!

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

答案 7 :(得分:1)

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

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

答案 8 :(得分:1)

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

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

答案 9 :(得分:1)

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

答案 10 :(得分:0)

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

Eclipse有

eclipse.p2.profile=epp.package.standard

Titanium

eclipse.p2.profile=profile

更改上面的内容以匹配eclipse配置后,我能够启动Titanium

答案 11 :(得分:0)

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

答案 12 :(得分: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

答案 13 :(得分:0)

默认情况下,您的MacOSX附带JRE 1.6.0,不适合Eclipse。要解决问题,您还需要安装已包含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将在不再进行任何修改的情况下启动。

答案 14 :(得分:-1)

简单的解决方案。在这里的另一个线程上。从apple.com而不是Oracle下载Java。它完全解决了问题,现在只需双击即可打开,无需终端或编程。