【发布时间】:2014-10-23 02:00:59
【问题描述】:
我最近升级到 Yosemite,不过是与 java 相关的问题。首先在操作系统(与 Adobe 相关)启动时,然后在 Eclipse 启动时,它告诉我需要安装 Java 6。所以我去安装了 Java 6,然后事情变得更好了,但是 Eclipse 无法正常工作。
所以我开始四处寻找,看起来 Apple 安装的 Java 现在是 Java 7,尽管所有符号链接都指向名为 A 的文件夹(即 Java 7),但符号链接是 1.4、1.5 和 1.6。所以我认为eclipse很困惑。所以我决定放弃 Apple 的 Java,转而使用 Oracle 的。
所以我得到了 Oracle,它安装到 /Library/Java/JavaVirtualMachines/jdk1.7。但是,/usr/bin 中的所有 Apple 的 java 链接都指向 Apple 的 Java。所以为了解决这个问题,我找到了这个文件:
http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html
但是/usr/libexec/java_home 已经不存在了。所以我自己更新了所有符号链接(不是通过编辑/usr/bin 中的链接,而是通过更新它们指向的内容)所以现在当我执行javac 时,它指向Oracle 的JDK,正如预期的那样。
所以我认为我修复了所有问题,然后运行ant,这在所有这些混乱之前都在工作,我得到:
Apache Ant(TM) version 1.9.2 compiled on July 8 2013
Trying the default build file: build.xml
Buildfile: /Users/rjcarr/Subversion/p/build.xml
Detected Java version: 1.7 in: /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre
Detected OS: Unknown
parsing buildfile /Users/rjcarr/Subversion/p/build.xml with URI = file:/Users/rjcarr/Subversion/p/build.xml
Project base dir set to: /Users/rjcarr/Subversion/p
Caught an exception while logging the end of the build. Exception was:
java.lang.NoClassDefFoundError: Could not initialize class sun.util.calendar.ZoneInfoFile
...
There has been an error prior to that:
java.lang.AssertionError: Platform not recognized
这就是我是否将 $JAVA_HOME 设置为 Oracle Java 的结果。怎么回事?
每次我更新 OSX 时都会发生这些事情,但我总是忘记我有多少麻烦。 :)
更新:感谢您的帮助,我有更多信息。我已经在 /Library/Java/JavaVirtualMachines 下安装了几个来自 Oracle 的 JDK 7。似乎 A 文件夹中的所有内容都只是 java_home 返回的任何内容的秘密符号链接。我安装了最新的 JDK 7u71,我认为这是罪魁祸首。我过早地删除了我拥有的较旧的 JDK,并前往 Oracle 的存档以取回我的 u51,但它无法安装,因为它认为 OSX.10 太旧了。所以我取得了飞跃并获得了 JDK 8 并解决了我的 ant 问题,但现在我遇到了新问题,包括 Eclipse 甚至无法启动。哎呀!我猜是去处理这个问题。
【问题讨论】:
-
/usr/libexec/java_home肯定仍然存在于优胜美地。这是我系统上的符号链接/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home。 -
我不确定您指的是什么符号链接,或者您如何更改它们。将所有这些设置为默认配置,您是否尝试将 JAVA_HOME 变量添加到您的 .profile 文件中?目前尚不清楚需要哪个版本的 Java,但例如:export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7/Contents/Home
-
我个人从来不需要在任何 mac 上调整与 jdk 配置相关的符号链接,所以这让我很好奇这是否是必要的步骤......然后我还没有更新到优胜美地: )
-
@SteveC:我的符号链接不在 libexec 中,但它是你声明的地方,所以谢谢!
-
@SamB.:是的,我同意,我记得之前修复过符号链接的 oracle 安装程序,但无论出于何种原因,这次没有。