macos – 为什么/usr/libexec / java_home不能识别JDK 1.8?
作者:互联网
我正在尝试在OS X Mountain Lion上安装JDK 8(以试验新的lambda功能).
初始点
最近从OS X 10.6更新到10.8的机器
$sw_vers
ProductName: Mac OS X
ProductVersion: 10.8.2
BuildVersion: 12C60
$ls -l /Library/Java/JavaVirtualMachines/
Home@ -> jdk1.7.0_09.jdk/Contents/Home/
jdk1.7.0_09.jdk/
$ls -l /System/Library/Java/JavaVirtualMachines/
1.6.0.jdk/
和OS X 10.6时代的这个文件夹:
/System/Library/Frameworks/JavaVM.framework/Versions/
在〜/ .bashrc我已经设置好了
export JAVA_HOME=/Library/Java/JavaVirtualMachines/Home
所以我有
$java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
$/usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home
我是如何安装JDK 8的
>从http://jdk8.java.net/lambda/下载.tar.gz文件并将其解压缩到
> /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
(我手动创建了文件夹jdk1.8.0.jdk / Contents / Home)
>将symlink / Library / Java / JavaVirtualMachines / Home更改为指向jdk1.8
我现在有
$java -version
openjdk version "1.8.0-ea"
OpenJDK Runtime Environment (build 1.8.0-ea-lambda-nightly-h2135-20121203-b67-b00)
OpenJDK 64-Bit Server VM (build 25.0-b05, mixed mode)
$echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/Home
$ls /Library/Java/JavaVirtualMachines
Home@ -> jdk1.8.0.jdk/Contents/Home/
...
但java_home实用程序似乎并不关心:
$/usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home
它甚至不知道有可用的JDK 8:
$/usr/libexec/java_home -v 1.8*
Unable to find any JVMs matching version "1.8*".
题
我想/usr/libexec / java_home实用程序来查找我安装的JDK,所以我可以使用这样的东西:
alias setjdk17='export JAVA_HOME=$(/usr/libexec/java_home -v 1.7*)'
alias setjdk18='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8*)'
并摆脱Home符号链接.有人知道吗
>我如何才能正确安装JDK 8?
>我怎么能让/usr/libexec / java_home认出来呢?
解决方法:
您还需要从1.7 SDK复制Contents / MacOS目录和Info.plist并进行调整(通过更改其中的版本字符串).
然后你可以:
$export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
$java -version
openjdk version "1.8.0-ea"
$/usr/libexec/java_home -v 1.8*
/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
请注意,这是一个黑客攻击,除了启动java之外我没有尝试过其他任何东西……我只是在创建包的过程中构建.
标签:java,macos,install,mountain-lion 来源: https://codeday.me/bug/20190818/1685111.html