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

san*_*ity 46 java eclipse macos

我正在努力让新的1.7 JDK与Eclipse一起工作(这是Oracle的官方发布).

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

我已经将新的JVM移到了Java Preferences的列表顶部,但是Eclipse仍然以1.6开头.如果我在Java Preferences中禁用1.6,那么在我双击Eclipse"无法创建Java虚拟机"后立即获得一个对话框.

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

-vm
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/bin/java
Run Code Online (Sandbox Code Playgroud)

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

java.runtime.version=1.6.0_31-b04-415-11M3646
Run Code Online (Sandbox Code Playgroud)

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

Jan*_*icz 36

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

-vm 
{YOUR_JAVA_7_HOME}/jre/lib/server/libjvm.dylib
Run Code Online (Sandbox Code Playgroud)

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

...
<key>Eclipse</key>
<array>
<string>-vm</string>
<string>/{MY_VM_HOME}/jre/lib/server/libjvm.dylib</string>
...
</array>
Run Code Online (Sandbox Code Playgroud)

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

  • 对于Kepler和JRE 1.7,JVM共享库"/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/server/libjvm.dylib"不包含JNI_CreateJavaVM符号. (6认同)
  • 这对我有用(eclipse 3.7.1),我不知道为什么它没有被标记为好的答案. (2认同)

jkw*_*c89 32

我刚刚将我的评论添加到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
Run Code Online (Sandbox Code Playgroud)

使用http://mathiasbynens.be/notes/shell-script-mac-apps上的步骤,我将上面的脚本转换为可以保留在Dock上的应用程序.


Jil*_*urp 9

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

同时,这个bug中提到了一个解决方法,允许你在不安装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>
Run Code Online (Sandbox Code Playgroud)

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


小智 6

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

-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/
Run Code Online (Sandbox Code Playgroud)

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

这终于改变了我的Eclipse安装细节>配置

-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安装.