如何在Mac OS X上面指定Eclipse启动时用指定的某一版本JDK

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Mac OS X上面指定Eclipse启动时用指定的某一版本JDK相关的知识,希望对你有一定的参考价值。

参考技术A $ECLIPSE_HOME/Eclipse.app/Contents/MacOS/eclipse.ini 文件,在 Finder 中右键或者Ctrl+点击 Eclipse 应用程序,然后点击“显示包内容”,进入目录 Contents/MacOS/ 即可找到
通过 ls -ltr /Library/Java/JavaVirtualMachines/ 列出已经安装好的各个 JDK 版本的路径,然后在 eclipse.ini 文件中指定之,比如:
-vm
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java

系统默认则是
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

同时,可以先通过执行 /usr/libexec/java_home -V 可以查看所有的 JAVA_HOME 指向哪,比如:
Matching Java Virtual Machines (5):
1.8.0_25, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
1.8.0_20, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
1.7.0_71, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
1.6.0_65-b14-466.1, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-466.1, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home

ls -ltr /usr/libexec/java_home 显示文件信息本回答被提问者和网友采纳

安装 Mac OS X Yosemite (Mac OS 10.10) 后 Eclipse 无法启动

【中文标题】安装 Mac OS X Yosemite (Mac OS 10.10) 后 Eclipse 无法启动【英文标题】:Eclipse won't start after installing Mac OS X Yosemite (Mac OS 10.10) 【发布时间】:2014-07-24 07:23:03 【问题描述】:

升级到 Mac OS Yosemite (10.10) 后,我的 Eclipse 将不再启动。相反,我得到了

JVM 共享库 /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib" 不包含 JNI_CreateJavaVM 符号。

我检查了java -version 并得到了

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

我搜索并发现了一个类似的问题Reinstalling Java 7 JDK on OSX。它建议重新安装Java。我不确定我的问题是否与他的问题属于同一类别。那么,重新安装是解决问题的好方法吗?还有什么建议吗?谢谢!

【问题讨论】:

鉴于 Yosemite 仅可用一天,我怀疑是否有很多(任何?)人有在其上运行 Eclipse 的经验。 你能运行其他java程序吗? @MadProgrammer 使用java的电子银行程序可以工作。但它是网络程序。 @greg-449 是的,你是对的。我可能是第一个提出这个问题的人 :) 但也许这里的线程可以帮助以后的人? 我刚刚下载了 Eclipse Kepler 的新副本,它运行良好。我不知道为什么以前的副本不起作用,但我现在不在乎。 【参考方案1】:

转到下面的链接并下载 Java for OS X 2014-001

http://support.apple.com/kb/DL1572?viewlocale=en_US&locale=en_US

希望安装后可以正常使用

【讨论】:

“这个包安装了 Java 6 的相同版本,包含在 OS X 2013-005 的 Java 中。”但我不想降级我的 Java 版本来运行 Eclipse。应该有更好的方法来处理它。 我以前的 java 1.6.0_51 包含在所有 Java 应用程序的 Java OSX 2013-05 中。从 JavaForOSX2014-001 升级到 java 1.6.0_65 后一切正常。【参考方案2】:

试试这个https://jdk8.java.net/download.htmlJava8u20 早期更新。

【讨论】:

如果您认为这是正确答案,请将此答案标记为正确答案。 这应该是正确的答案。另外,请参阅 Oracle 人员的此条目:community.oracle.com/thread/3595264 为了清楚起见,您需要安装 JDK 而不仅仅是此页面中的 JRE。您还需要 Eclipse (juno) 的当前 64 位(必须是 64 位)副本,它将在 JDK /Library/Java/JavaVirtualMachines/ 的 1.7+ 位置下查看,而不是 /System/Library/Java 的先前 1.6 位置/JavaVirtualMachines/【参考方案3】:

您可以在位于 System > Library > CoreServices 的“SystemVersion.plist”中临时更改系统版本。

以 root 身份编辑,将 ProductVersion 更改为 10.7.3(或任何适合您的版本)。

安装java。

别忘了改回来。

【讨论】:

这是最好的答案。 我将我的更改为 10.7.3 - 打开 Android Studio 时仍然收到相同的消息【参考方案4】:

我解决了这个问题,以 root 身份创建这些空文件夹,而无需使用 java8 (vers.1.8.0_60-ea) 降级:

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk 和 /System/Library/Java/Support/Deploy.bundle

希望对你有帮助...

【讨论】:

【参考方案5】:

我从 Oracle 安装了 Java JRE:http://download.oracle.com/otn-pub/java/jdk/8u25-b17/jre-8u25-macosx-x64.dmg

然后安装苹果包:http://support.apple.com/kb/DL1572?viewlocale=en_US&locale=en_US

我能够从自制桶安装 eclipse-ide

brew cask install eclipse-ide eclipse-java

(请注意 brew cask 安装到 ~/Applications 而不是 /Applications)

我通常不使用 Eclipse,但是我能够启动并运行 IDE。我会注意到命令行上的java被破坏了,这是Yosimite中的新内容。

如果这不起作用,请告诉我。或者,如果您需要 Homebrew 或 Cask 的帮助

【讨论】:

【参考方案6】:

确保您使用的是 64 位版本的 Mac Eclipse,我刚刚尝试过它可以完美运行

【讨论】:

只要您已经安装了 1.7+ JDK。旧版本的 Eclipse 将找不到 JDK 的新 1.7 位置,这就是为什么在 1.7 推出时您会在网上找到的一些 cmets 建议降级到 1.6 以使旧版本的 Eclipse 工作。【参考方案7】:

两种情况:

    如果您已经安装了 Java 8 和 Eclipse Luna,例如关于小牛队和(打算)更新到优胜美地:只需更新,它会正常工作。

    如果您没有安装 Java 并想在 Yosemite 上运行 Eclipse:

    从http://support.apple.com/kb/DL1572 安装 Apple Java 6 文件 使用运行 Java 6 的 Eclipse 版本,例如开普勒来自https://www.eclipse.org/downloads/packages/release/Kepler/SR2

这意味着,如果您想使用 Eclipse Luna 和 Java 8,请在运行 Mavericks 时安装它,然后更新到 Yosemite。不要尝试在 Yosemite 上安装 Java 8,因为这目前还行不通。

在我的 Mac 上不起作用的是:安装 Java 6 并运行需要 Java 7 或 8 的 Eclipse Luna。安装 Java 7 或 8 并不能解决问题,因为安装程序似乎有问题。不过,Oracle 应该会在几天内解决。

【讨论】:

我让 Luna 和 Maverick 安装了 Yosemite 的预更新,但不,它不能完美运行。 没错!那他为什么要发这个问题!?遇到同样的问题!【参考方案8】:

升级到 yosemite 后,java 6 jdk 不再可用,记住 jdk 6 for mac osx 是 32 位应用程序,较旧的 eclipse 版本需要 32 位 jvm 才能正常运行,32 位应用程序无法使用 java 7 或 8 之类的 64 位 jvm 运行,因此您需要安装 jdk 6 才能运行那些需要 32 位虚拟机的 java 应用程序。正如这里已经发布的那样,您可以从http://support.apple.com/kb/DL1572?viewlocale=en_US&locale=en_US下载jdk 6

【讨论】:

以上是关于如何在Mac OS X上面指定Eclipse启动时用指定的某一版本JDK的主要内容,如果未能解决你的问题,请参考以下文章

如何在Mac OS X上面指定Eclipse启动时用指定的某一版本JDK

安装 Mac OS X Yosemite (Mac OS 10.10) 后 Eclipse 无法启动

mac os x10.11.2系统eclipse无法读取环境变量的问题

如何在 Mac OS X 上使用 C++ 播放声音?

如何使用mac os X在eclipse中运行现有的maven项目

如何从 Mac OS X 中完全删除 Eclipse(包括设置和插件)?