我想完全删除Apple的Java 6,并使每个程序都默认使用Oracle Java 7。例如,在Eclipse中,我不得不用eclipse.ini来为Java 7指定JAVA_HOME,为TunnelBear指定相同的名称。不过,对于Aptana来说运气不佳(它仍然需要Apple的Java)是否有办法使Oracle的Java在PATH方面成为默认设置?
我想完全删除Apple的Java 6,并使每个程序都默认使用Oracle Java 7。例如,在Eclipse中,我不得不用eclipse.ini来为Java 7指定JAVA_HOME,为TunnelBear指定相同的名称。不过,对于Aptana来说运气不佳(它仍然需要Apple的Java)是否有办法使Oracle的Java在PATH方面成为默认设置?
Answers:
从Oracle下载并安装最新的Java开发工具包(JDK),将其放入/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk
(或任何最新版本)。现在,启动Terminal.app,然后输入以下命令:
cd /System/Library/Java/JavaVirtualMachines
(更改到正确的目录)
sudo mv 1.6.0.jdk backup.1.6.0.jdk
(以防万一,请保留旧的JDK,以防万一-您需要输入管理员密码才能执行此操作)
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk 1.6.0.jdk
(将新的JDK安装链接到应用程序期望旧安装的位置)
请记住,随着jdk的进一步更新,您需要将符号链接更新到新目录:
sudo rm /System/Library/Java/JavaVirtualMachines/1.6.0.jdk && sudo ln -s /Library/Java/JavaVirtualMachines/new_jdk_version /System/Library/Java/JavaVirtualMachines/1.6.0.jdk
这些说明对我来说在OS X Mavericks上效果很好。
删除苹果的JVM
$ sudo rm -rf /System/Library/Java/JavaVirtualMachines/
删除安装程序记录
$ sudo rm /private/var/db/receipts/com.apple.pkg.JavaForMacOSX*
删除安装程序收据(删除<dict>...</dict>
引用com.apple和java 的条目)
$ sudo emacs /Library/Receipts/InstallHistory.plist
设置Java 7的符号链接
$ sudo rm /usr/bin/java
$ sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home/bin/java /usr/bin/java
可选的符号链接 JAVA_HOME
sudo rm /Library/Java/Home
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home /Library/Java/Home
好吧,如果您从Apple安装了最新的Java更新,则实际上应该会卸载Java6。您可以直接访问Oracle网站下载Java7。这就是我所做的。如果您的系统上只有Java 7,则应将其设为默认值。
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java
我知道这是一个旧线程,但是如果有人在其计算机上安装了Adobe CS5,则必须运行Apple 1.6版的Java才能运行该套件。我正在运行需要1.7或更高版本的Eclipse。我以为它将取代Apple版本,但没有。Apple版本位于System / Library文件夹中,而Oracle版本位于Library文件夹中。
以为我会为可能需要此信息的人添加更多信息。
OS X狮子