Eclipse无法打开,提示JVM过期(Mac)

4
我正在使用Mac尝试使用较新版本的Eclipse进行Java编程,但它们无法正常工作。旧版本的Eclipse可以正常工作,但我最近安装了Eclipse Luna,当我打开它时,它会显示:“JVM版本1.6.0_31不适用于此产品。需要版本:1.7或更高版本。”但我已经安装了最新版本的Java。我安装了最新版本的JDK,如果我没记错的话,JVM是Java虚拟机,但我不知道如何更新它。我对Java很有经验,但我对JVM之类的东西是初学者,请在解释答案时尽可能具体。还请解释为什么它可以工作以及为什么之前无法工作。在发布帖子之前,我在这个网站上搜索过,一个类似问题的答案是输入


 export JAVA_HOME=/usr/libexec/java_home -v 1.7

我在终端输入命令,但终端提示错误:

 -bash: export: `/usr/libexec/java_home': not a valid identifier
 -bash: export: `-v': not a valid identifier
 -bash: export: `1.7': not a valid identifier

所以请帮忙,我不知道该怎么办。

1
你可能需要输入 export JAVA_HOME=$(/usr/libexec/java_home -v 1.7),但你需要安装 1.7 JDK,可以从 java.com 下载。 - Anya Shenanigans
@Petesh写一个关于它的答案? - Deepanshu J bedi
现在在您的终端上输入"java -v"会给您什么结果? - Swapnil
@Petesh,它说找不到该文件或目录,但我已经安装了JDK 7。安装程序显示安装成功,但也许它没有起作用,但我不知道为什么。 - RothX
@Swapnil java -v 说:"无法识别的选项:-v" "错误:无法创建Java虚拟机。" "错误:发生致命异常。程序将退出。" - RothX
4个回答

5

我曾经也遇到过同样的问题。在我的情况下,以下操作有所帮助。

在终端中运行以下命令:

export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"

使用 java -version 命令验证更改是否生效。


3

首先,您需要确认已安装了1.7或更高版本的JVM。要执行此操作,请执行以下操作:

/usr/libexec/java_home --verbose

这个命令是内置于Mac OS X中的,它会列出所有已知的Java环境。如果列表中没有看到1.7 VM,则表示安装不正确。
其次,您需要确保下载的Eclipse版本与JVM兼容。例如,我已安装以下JDK:
1.8.0_05, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
1.7.0_55, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home
1.6.0_65-b14-462, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Home

这意味着我可以使用64位(x86_64)版本的eclipse与1.6、1.7和1.8 VM一起使用。
只有1.6 VM具有32位JDK,因此这意味着我只能使用32位(i386)版本的eclipse。
根据Eclipsepedia安装页面,大多数基于Eclipse 4.4的Luna软件包下载需要1.7 JDK/JRE(从页面中提取)。
因此,请确保您正在使用64位下载。
要确定您下载的eclipse实例的32/64位版本,在终端中转到eclipse安装目录。在具有名为:Eclipse.appconfigurationplugins的目录的同一目录中,有一个指向eclipse二进制文件的符号链接。运行file eclipse,它将告诉您它运行的模式;如果得到x86_64,则是64位版本,如果得到i386,则是32位版本。
64位:
$ file eclipse
eclipse: Mach-O 64-bit executable x86_64

32位:

$ file eclipse
eclipse: Mach-O 32-bit executable i386

这是我安装的所有JDK版本:1.7.0_55,x86_64:“Java SE 7” /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home 1.6.0_31-b04-415,x86_64:“Java SE 6” /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 1.6.0_31-b04-415,i386:“Java SE 6” /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 1.7.0_65,x86_64:“Java SE 7” /Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home看起来我已经安装了JDK 1.7。我似乎有多个Java 7的64位版本,但我不认为这会成为问题,但也许它确实存在问题。 - RothX
好的,这里显示您已安装了1.7 VM,现在您需要验证是否已下载64位版本的eclipse;因为只有该版本才能与这些特定的JDK配合使用。从终端窗口运行file eclipse命令,对提取的eclipse安装.tar.gz文件顶层的文件进行检查。如果它没有返回x86_64,则返回eclipse网站并下载64位版本。 - Anya Shenanigans
太好了!问题解决了。谢谢你!我猜我之前用的是32位版本的Eclipse。 - RothX

1
安装最新的Java SE运行后,执行以下命令:

export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"


对我来说有效。

0

我认为你系统上的Java 1.6版本可能是苹果的Java运行时。从Java 7开始,苹果决定不再制作自己的端口,你需要从Oracle获取。

看起来你的Java安装可能出了问题。你可以尝试删除现有的Java安装,并从Oracle安装最新的Java 7,然后首先尝试运行java -v。如果这个命令能够正常运行,那么你就可以设置JAVA_HOME并继续进行。


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