在OSX.10 Yosemite上使用Ant和Java



我最近升级到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 上缺少蚂蚁特立独行者有关

相关内容

  • 没有找到相关文章

最新更新