我最近升级到Yosemite,它只是与java相关的问题。首先在操作系统(与Adobe相关)启动时,然后在Eclipse启动时,它告诉我需要安装Java6。所以我去做了,情况有所好转,但Eclipse不起作用了。
所以我开始四处寻找,看起来苹果现在安装的Java是Java 7,尽管所有的符号链接都指向一个名为a的文件夹(即Java 7),但符号链接是1.4、1.5和1.6。所以我觉得eclipse很困惑。所以我决定放弃苹果的Java,转而使用甲骨文的。
所以我得到了Oracle,它安装到/Library/Java/JavaVirtualMachines/jdk1.7
。然而,/usr/bin中所有苹果的java链接都指向苹果的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设置为OracleJava,结果都是这样的。怎么回事?
每次更新OSX时,这些事情都会发生在我身上,但我总是忘记自己有多麻烦。:)
更新:谢谢你的帮助,我有更多的信息。我已经在/Library/Java/JavaVirtualMachines下安装了几个来自Oracle的JDK7。似乎A文件夹中的所有内容都只是java_home
返回的内容的隐藏符号链接。我安装了最新的JDK 7u71,我认为这是罪魁祸首。我过早地删除了旧的JDK,并去了Oracle的档案馆取回了我的u51,但它不会安装,因为它认为OSX.10太旧了。因此,我迈出了这一步,获得了JDK8,并克服了蚂蚁问题,但现在我遇到了新的问题,包括Eclipse甚至无法启动。诶呀我想是去处理这个了。
如果您在Yosemite上需要Java 6,请确保从Java for OS X 2014-001的下载中安装它。
对于Java 7、8等,请确保从Oracle Java下载网站下载JDK(因为您似乎正在进行开发工作)。
请注意,用于web浏览器小程序的JRE安装是以不同的方式管理和安装的(并且安装在不同的位置)。
如果您也需要Ant,请从Apache Ant官方网站安装:二进制下载
如果您已经在使用Homebrew,请使用它来安装Ant。
这个问题在某种程度上与stackoverflow 上缺少蚂蚁特立独行者有关