编程语言
首页 > 编程语言> > macos – 为什么/usr/libexec / java_home不能识别JDK 1.8?

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