如何在MacOS上安装额外的Java?我安装了jdk8,工作正常.但现在我需要一个jdk7安装用于开发目的.当尝试通过DMG文件安装旧版本时,我收到警告,已经安装了较新版本的Java并且安装程序退出.
/usr/libexec/java_home -verbose
Matching Java Virtual Machines (1):
1.8.0_20, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
除了这个之外,如何安装jdk7?
谢谢
Dakky
我有OSX与Java 1.6安装,我刚刚安装jenv连同Java 1.7:
$ jenv local '1.7'
$ jenv versions
system
1.6
1.6.0.65
* 1.7 (set by /Users/me/workspace/.java-version)
1.7.0.79
oracle64-1.6.0.65
oracle64-1.7.0.79
Run Code Online (Sandbox Code Playgroud)
jenv正在工作,$ java -version总是工作,当我将它设置为1.6时显示1.6,当我将其设置为1.7时显示1.7:
$ java -version
java version "1.7.0_79" <--------------------------------- YAY!!
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud)
...但是maven忽略了我的设置:
$ mvn -version
Apache Maven 3.0.2 (r1056850; 2011-01-08 19:58:10-0500)
Java version: 1.6.0_65, vendor: Apple Inc. <--------------------------------- BAH!!
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下命令将 JDK 17 安装到 macOS BigSur (11.5.2)brew install openjdk@17
> brew install openjdk@17
Running `brew update --preinstall`...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
Updated 3 formulae.
openjdk is already installed but outdated (so it will be upgraded).
==> Downloading https://ghcr.io/v2/homebrew/core/openjdk/manifests/17.0.1_1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/openjdk/blobs/sha256:75ee17c1331022fa8bf1e63f00fe903f23fe31d3a09021117d46b5f6ed1e26e1
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:75ee17c1331022fa8bf1e63f00fe903f23fe31d3a09021117d46b5f6ed1e26e1?se=2021-12-09T20%3A25%3A00Z&sig=NnB%2FO%2BGQF5ec6iqdKA4w29
######################################################################## 100.0%
==> Pouring openjdk--17.0.1_1.big_sur.bottle.tar.gz
==> Caveats
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
openjdk is …Run Code Online (Sandbox Code Playgroud) 我刚开始使用jenv,我跟着一篇博客文章,解释了如何jenv在MacOSX上使用和设置多个java版本.但是我现在遇到的问题是设置JAVA_HOME.当我切换java环境时,jenv我想确保JAVA_HOME我的bash_profile也相应地改变.
我怎么做?
我跟着我 ~/.bash_profile
if which jenv > /dev/null; then eval "$(jenv init -)"; fi
Run Code Online (Sandbox Code Playgroud) 我正在使用Jenv来管理我的 MacBook(OS X Yosemite) 上的多个 java 版本。
jenv add /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
oracle64-1.6.0.65 added
1.6.0.65 added
1.6 added
Run Code Online (Sandbox Code Playgroud)
并在添加 Java 1.8 时
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
oracle64-1.8.0.60 added
1.8.0.60 added
1.8 added
Run Code Online (Sandbox Code Playgroud)
和 jenv version 显示同一版本的多行实际上它是一个版本?
jenv versions
* system (set by /Users/$USERNAME/.jenv/version)
1.6
1.6.0.65
1.8
1.8.0.60
oracle64-1.6.0.65
oracle64-1.8.0.60
Run Code Online (Sandbox Code Playgroud) 我正在使用 Amazon corretto JDK,之前在我的 Mac 操作系统中仅安装了 1.8,昨天我使用 Mac OS 软件包安装程序安装了 Amazon corretto JDK 11,之后它将我的默认 java 版本更改为 11。
我在 Jenv 上关注了高度评价的Medium 博客来管理 Mac OS 上的多个版本,但我的默认 java 版本仍然没有切换回 1.8,并且在关注 stackoverflow 答案或 Medium 帖子时没有收到任何错误。
jenv 版本
system
1.8
* 1.8.0.252 (set by /Users/my user/.jenv/version) // note `*` that should tell the current version IMO
11
11.0
11.0.7
corretto64-1.8.0.252
corretto64-11.0.7
Run Code Online (Sandbox Code Playgroud)
的输出java -version
java --version openjdk 11.0.7 2020-04-14 LTS OpenJDK 运行时环境 Corretto-11.0.7.10.1 (build 11.0.7+10-LTS) OpenJDK 64 位服务器 VM Corretto-11.0.7.10.1 (build …
我在 MacOS 上,zsh。
我已经安装了jenv,添加了几个java版本。
我跑了
jenv enable-plugin maven
Run Code Online (Sandbox Code Playgroud)
和
jenv enable-plugin export
Run Code Online (Sandbox Code Playgroud)
jenv医生返回:
[OK] JAVA_HOME 变量可能由 jenv PROMPT 设置
[OK] 路径中的 Java 二进制文件是 jenv 垫片
[OK] Jenv 已正确加载
jenv 版本返回:
* system (set by /Users/[user]/.jenv/version)
1.8.
1.8.0.271
11
11.0
...
Run Code Online (Sandbox Code Playgroud)
但是当我启动终端会话并运行 mvn --version 我得到
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE
Run Code Online (Sandbox Code Playgroud)
如果我使用 jenv 设置非系统 java 版本,它可以正常工作,例如:
~/ jenv shell 11 …Run Code Online (Sandbox Code Playgroud) 在我的 Mac-pro OS-X Yosemite 上,我使用 Jenv 安装 java7 和 java8。
$ brew cask install java8
$ brew cask install java7
Run Code Online (Sandbox Code Playgroud)
然后对每个 java 执行“jenv add”命令,如下所示:
$ sudo jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/
Run Code Online (Sandbox Code Playgroud)
添加了oracle64-1.7.0.80
我可以在 /Users/xxxxx/.jenv/versions 中看到两者
$ ls -lrt
Run Code Online (Sandbox Code Playgroud)
lrwxr-xr-x 1根员工2月1日64日13:42 oracle64-1.8.0.121 -> /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
lrwxr-xr-x 1根员工2月1日63日13:49 oracle64-1.7.0.80 -> /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
但是当我尝试将java8设置为全局时,它说未安装java8。
$ jenv global oracle64-1.8.0.121
Run Code Online (Sandbox Code Playgroud)
jenv:未安装版本“oracle64-1.8.0.121”
我在这里错过了什么吗?我该如何解决这个问题?
我搜索了一点,但我有点困惑。
我已经通过homebrew安装了Java8和Java11。Java8是用adoptopenjdk/openjdktap安装的,Java11是从homebrew/casktap安装的。当我看到 AdoptOpenJDK 的版本时,我看到这个版本:
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_212-b03)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.212-b03, mixed mode)但在 Oracle 上,我看到内部版本号是 33,并且我有b03. 如何使用自制程序更新版本?
当我通过使用Jenv并在终端上获取版本切换到 Java11 时,我得到:
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
在oracle上我看到版本是11.0.3,如何更新?或者我不能通过自制软件做到这一点吗?或者还有其他更好的安装java和版本切换的解决方案吗?
感谢所有答案!
jenv plugins我相信,该命令将向您显示所有可用的插件。
是否有jenv指示实际启用了哪些插件的命令?
我安装了jenv。的输出which java最初是/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java. 我发出以下命令:
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
eval "$(jenv init -)"
Run Code Online (Sandbox Code Playgroud)
现在,输出which java是
/Users/my_username/.jenv/shims/java
Run Code Online (Sandbox Code Playgroud)
java -version前后的输出是一样的。但是,mvn clean install抛出错误:
Error: JAVA_HOME is not defined correctly.
We cannot execute /Users/my_username/.jenv/versions/system/bin/java
Run Code Online (Sandbox Code Playgroud)
为什么 Maven 没有选择正确的 java?
jenv ×11
java ×8
macos ×6
homebrew ×2
maven ×2
adoptopenjdk ×1
installation ×1
java-11 ×1
java-17 ×1
java-home ×1