我想在Mac OSX上安装OpenJDK Java 11,并将其与其他JDK一起使用,因为它是一个较新版本.目前,我下载了tar.gz并将其放在我的路径中,但这很难维护.
我发现自动做更多事情的唯一其他安装是通过Homebrew cask进行的Oracle安装,但这是商业JDK,我想要开源的!
brew cask info java
显示:
java:11,28:55eed80b163941c8885ad9298e6d786a
https://www.oracle.com/technetwork/java/javase/overview/index.html
它是Oracle JDK而不是OpenJDK,请参阅:https:
//discourse.brew.sh/t/how-to-install-openjdk-with-brew/712
从较旧的问题(Mac OS X和多个Java版本)的指示已过时,并给我错误的版本 - Oracle而不是OpenJDK.
更新: 截至2018年10月3日,Homebrew酒桶现在指向OpenJDK 11
1> Jayson Minar..:
注意: 这些解决方案适用于您的Java 11 OpenJDK特定情况,但也适用于列出的版本管理器涵盖的任何其他以前的Java版本.这包括来自OpenJDK,Oracle,IBM,Azul,Amazon Correto,Graal等的替代JDK.轻松使用Java 7,Java 8,Java 9,Java 10,Java 11,甚至可以早期访问Java 12!
您可以选择如何进行安装以及管理JDK切换.可以通过Homebrew,SDKMAN,Jabba或手动安装来完成安装.切换可以由JEnv,SDKMAN,Jabba完成,也可以通过设置手动完成JAVA_HOME
.所有这些都在下面描述.
安装
首先,使用您喜欢的任何方法安装Java,包括Homebrew,SDKMAN或手动安装tar.gz文件.手动安装的优点是JDK的位置可以放置在Mac OSX的标准化位置.
使用SDKMAN安装
这是一个简单的模型,它处理安装和版本切换,但需要注意的是它将JDK安装到非标准目录中.
<参见下面"使用SDKMAN安装和切换版本" >
使用Jabba安装
这也是一个简单的模型,安装和版本切换都由同一个工具处理.安装到非标准目录.
<见下文"使用Jabba安装和切换版本" >
从OpenJDK下载页面手动安装:
从下载的OpenJDK 11的Mac OSX http://jdk.java.net/11/(或提前获得JDK 12 http://jdk.java.net/12/)
取消归档OpenJDK tar,并将生成的jdk-13.jdk
文件夹放入您的/Library/Java/JavaVirtualMachines/
文件夹,因为这是JDK安装的标准和预期位置.您也可以在现实中随意安装.
用Homebrew安装
Homebrew Cask中可用的Java版本到2018年10月3日确实是Oracle JVM.但是现在它已经更新为OpenJDK.请务必更新Homebrew,然后您将看到可用于安装的最新版本.
如果你还没有安装Homebrew.确保它已更新:
brew update
如果您尚未添加垃圾桶,请添加:
brew tap homebrew/cask-versions
寻找可安装的版本:
brew tap adoptopenjdk/openjdk
检查将要安装的版本的详细信息:
brew search java
注意:在2018年10月3日之前,当前版本是Java 11的Oracle商业版本,在10月3日之后,现在是OpenJDK 11.
安装特定版本的JDK,例如java11
,adoptopenjdk8
或java
当前:
brew search jdk
该AdoptOpenJDK版本可用,以及现在从家酿木桶:
brew cask info java
这些将被安装到adoptopenjdk
Mac OSX上预期的传统位置.
其他安装选项:
openJDK的其他一些风格是:
Azul Systems Java Zulu认证的OpenJDK版本可以按照其网站上的说明进行安装.
Zulu®是OpenJDK的认证版本,完全符合Java SE标准.Zulu是100%开源的,可免费下载.现在,Java开发人员,系统管理员和最终用户可以享受开源Java的全部优势,具有部署灵活性和对升级时间的控制.
Amazon Correto OpenJDK版本具有易于使用的版本8安装包(其他版本即将推出),并安装到/Library/Java/JavaVirtualMachines/
Mac OSX上的标准目录中.
Amazon Corretto是Open Java Development Kit(OpenJDK)的免费,多平台,生产就绪版本.Corretto提供长期支持,包括性能增强和安全修复.亚马逊在内部运行Corretto数千种生产服务,Corretto被认证为与Java SE标准兼容.使用Corretto,您可以在流行的操作系统上开发和运行Java应用程序,包括Amazon Linux 2,Windows和macOS.
我的JDK在哪里?!?!
要查找在默认系统位置安装的以前安装的Java JDK的位置,请使用:
brew cask info adoptopenjdk
匹配Java虚拟机(8):11,x86_64:"Java SE 11"/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home 10.0.2,x86_64:"Java SE 10.0.2"/ Library/Java /JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home 9,x86_64:"Java SE 9"/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home 1.8.0_144,x86_64:"Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
您还可以使用报告特定Java版本的位置 /Library/Java/JavaVirtualMachines/
brew cask install java
/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
在使用像JEnv这样的工具,或者在SDKMAN中添加本地安装,或者在Jabba中链接系统JDK时,了解已安装JDK的位置也很有用 - 您需要知道在哪里找到它们.
如果您需要通过其他工具查找JDK,请检查以下位置:
SDKMAN安装到 -v
Jabba安装到 ~/.sdkman/candidates/java/
手动切换版本
Java可执行文件是一个包装器,它将使用配置的任何JDK ~/.jabba/jdk
,因此您可以更改它以更改正在使用的JDK.
例如,如果您安装或解压缩JDK 11,JAVA_HOME
如果它是最高版本号,它应该已经是默认值,如果不是,您只需设置:
brew cask install homebrew/cask-versions/java11
现在路径中的Java可执行文件将看到这一点,并使用正确的JDK.
使用/Library/Java/JavaVirtualMachines/jdk-13.jdk
前面描述的实用程序可以帮助您创建别名或运行命令以通过识别不同JDK安装的位置来更改Java版本.例如,在您中创建shell别名/usr/libexec/java_home
或为您.profile
更改.bash_profile
:
/usr/libexec/java_home -V
然后要更改版本,只需使用别名即可.
/usr/libexec/java_home -v 13
java版"1.8.0_144"
当然JAVA_HOME
手动设置也有效!
使用JEnv切换版本
JEnv希望Java JDK已经存在于机器上,并且可以在任何位置.通常,您会找到已安装的Java JDKJAVA_HOME
.JEnv允许设置Java的全局版本,一个用于当前shell,一个每个目录的本地版本,当某些项目需要不同版本的版本时,它们很方便.
如果您还没有安装JEnv,请在网站http://www.jenv.be/上进行手动安装或使用Homebrew.
将任何Java版本添加到JEnv(如果将其放在其他位置,请调整目录):
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
使用以下命令设置全局版本:
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_9_HOME=$(/usr/libexec/java_home -v9)
export JAVA_10_HOME=$(/usr/libexec/java_home -v10)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_12_HOME=$(/usr/libexec/java_home -v12)
export JAVA_13_HOME=$(/usr/libexec/java_home -v13)
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java9='export JAVA_HOME=$JAVA_9_HOME'
alias java10='export JAVA_HOME=$JAVA_10_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java12='export JAVA_HOME=$JAVA_12_HOME'
alias java13='export JAVA_HOME=$JAVA_13_HOME'
# default to Java 13
java13
您还可以/Library/Java/JavaVirtualMachines/
以类似方式添加其他现有版本,并列出可用的版本.例如Java 8:
java8
java -version
有关更多命令,请参阅JEnv文档.您现在可以随时在整个系统,shell或每个本地目录之间切换任何Java版本(Oracle,OpenJDK,其他).
要jenv add
在使用JEnv时帮助管理,您可以添加导出插件来为您执行此操作.
jenv add /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
JAVA_HOME
如果已经设置了导出插件,则可能无法进行调整,因此您可能需要在配置文件中清除此变量,以便可以由JEnv进行管理.
您还可以使用为该JAVA_HOME
命令运行单个命令jenv exec
并JAVA_HOME
为其正确设置,这可能包括打开另一个shell.
使用SDKMAN安装和切换版本
SDKMAN有点不同,它处理安装和切换.SDKMAN还将已安装的JDK放入其自己的目录树中,这通常是PATH
.SDKMAN允许设置全局默认版本以及特定于当前shell的版本.
从https://sdkman.io/install安装SDKMAN
使用SDKMAN安装Java 11:
jenv global 13
将11设为默认版本:
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
jenv versions
或者为会话切换到11:
$ jenv enable-plugin export
You may restart your session to activate jenv export plugin echo export plugin activated
您可以使用list命令列出可供安装的可用版本:
sdk list java
并安装其他版本,例如JDK 8:
sdk install java 13.0.0-open
SDKMAN可以使用以前安装的现有版本.只需进行本地安装,给出自己的版本标签和JDK的位置:
sdk default java 13.0.0-open
并自由使用:
sdk use java 13.0.0-open
SDKMAN使用指南中提供了更多信息以及可以安装和管理的其他SDK.
SDKMAN会在您更改版本时自动管理您~/.sdkman/candidates/java
和PATH
您.
使用Jabba安装和切换版本
Jabba还处理安装和切换.Jabba还将已安装的JDK放入其自己的目录树中,这通常是JAVA_HOME
.
按照主页上的说明安装Jabba .
列出可用的JDK
sdk list java
安装Java JDK 11
sdk install java 8.0.181-oracle
用它:
sdk install java my-local-13 /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
您还可以为版本名称添加别名,链接到已安装的现有JDK,并查找有趣的JDK,如GraalVM,Adopt JDK,IBM JDK等.完整的使用指南也可在主页上找到.
当您更改版本时,Jabba将自动管理您~/.jabba/jdk
和PATH
您.
可能是在MacOS上运行不同JDK的最广泛和最有用的答案,涵盖了许多不同的方法,有些我以前从未遇到过.
对于手动安装,我认为您需要设置`JAVA_HOME`以选择特定版本,例如``.bash_profile`中的`export JAVA_HOME = $(/ usr/libexec/java_home -v
)`
酿酒桶中的Java在昨天,即2018年10月3日改为OpenJDK 11.
2> VK321..:
这就是我做的。
步骤1: 安装Java 11
您可以从此处下载适用于Mac的Java 11 dmg:https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html
步骤2:安装Java 11之后。确认所有版本的安装。在终端中键入以下命令。
/usr/libexec/java_home -V
步骤3:编辑.bash_profile
sudo nano ~/.bash_profile
步骤4:默认添加11.0.1。(将以下行添加到bash_profile文件中)。
export JAVA_HOME=$(/usr/libexec/java_home -v 11.0.1)
切换到任何版本
export JAVA_HOME=$(/usr/libexec/java_home -v X.X.X)
现在按CTRL + X退出bash。按“ Y”保存更改。
步骤5:重新载入bash_profile
source ~/.bash_profile
步骤6:确认Java的当前版本
java -version