如何在Mac上更改Java的默认版本?
答案 0 :(得分:948)
首先运行/usr/libexec/java_home -V
,输出如下内容:
Matching Java Virtual Machines (3):
1.8.0_05, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
1.6.0_65-b14-462, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
选择您想要成为默认版本的版本(1.6.0_65-b14-462
作为参数)然后:
export JAVA_HOME=`/usr/libexec/java_home -v 1.6.0_65-b14-462`
或者您只能指定主要版本,例如:
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
现在,当您运行java -version
时,您会看到:
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
只需将export JAVA_HOME…
行添加到shell的init文件中即可。
对于Bash(如antonyh所述):
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
答案 1 :(得分:291)
这个答案试图解决:当安装多个版本的JDK 进行开发时,如何控制系统范围内的Java版本(不仅仅是在当前运行的shell中)目的在于 macOS El Capitan或更新(Sierra,High Sierra,Mojave)。据我所知,目前的答案都没有(*)。
作为开发人员,我使用了几个JDK,我想轻松地从一个JDK切换到另一个。通常我有最新的稳定用于一般用途,其他用于测试。但我不希望系统(例如,当我启动我的IDE时)使用我现在拥有的最新“早期访问”版本。我想控制系统的默认值,这应该是最新稳定的。
以下方法至少适用于 Java 7到12 (撰写本文时的早期访问), Oracle JDK 或 OpenJDK (包括builds by AdoptOpenJDK produced after mid-October 2018)。
/Library/Java/JavaVirtualMachines
下的默认位置。系统默认选择最高版本。 Contents/Info.plist
重命名为Info.plist.disabled
。当$JAVA_HOME
指向JDK或在脚本或配置中显式引用时,仍可以使用该JDK。它只会被系统的java
命令忽略。系统启动程序将使用具有Info.plist
文件的最高版本的JDK。
在具有备用JDK的shell中工作时,在现有答案(jenv
或/usr/libexec/java_home
周围的自定义别名/脚本等)中选择您的方法。
调查详情in this gist。
(*)当前答案已过时(不再对macOS El Capitan或Sierra有效),或仅解决单个JDK,或者不解决系统范围问题。许多人解释了如何更改$JAVA_HOME
,但这只会影响当前的shell以及从那里启动的内容。它不会影响从OS启动器启动的应用程序(除非您更改正确的文件和注销/登录,这是繁琐的)。同样对于jenv来说,它很酷,但是据我所知它只是改变了环境变量,所以它有同样的限制。
答案 2 :(得分:161)
除了上面的答案之外,我在.bash_profile
中添加了以下几行,这使得切换非常方便(包括@ elektromin对java 9的评论):
alias j12="export JAVA_HOME=`/usr/libexec/java_home -v 12`; java -version"
alias j11="export JAVA_HOME=`/usr/libexec/java_home -v 11`; java -version"
alias j10="export JAVA_HOME=`/usr/libexec/java_home -v 10`; java -version"
alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
alias j8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`; java -version"
alias j7="export JAVA_HOME=`/usr/libexec/java_home -v 1.7`; java -version"
插入后,执行$ source .bash_profile
我可以通过输入以下内容切换到Java 8:
$ j8
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
答案 3 :(得分:49)
基于/ usr / libexec / java_home
的小型鱼类功能function jhome
set JAVA_HOME (/usr/libexec/java_home $argv)
echo "JAVA_HOME:" $JAVA_HOME
echo "java -version:"
java -version
end
如果你不使用鱼,你可以在bash中做类似的事情:
#!/bin/bash
jhome () {
export JAVA_HOME=`/usr/libexec/java_home $@`
echo "JAVA_HOME:" $JAVA_HOME
echo "java -version:"
java -version
}
然后在javas do:
之间切换$> jhome #switches to latest java
$> jhome -v 1.7 #switches to java 1.7
$> jhome -v 1.6 #switches to java 1.6
答案 4 :(得分:29)
使用jenv是一种简单的方法。
1.安装jenv
curl -s get.jenv.io | bash
2.Config jenv
cd ~/.jenv/candidates/ mkdir java cd java mkdir 1.7 mkdir 1.8
3.Symlink the jdk path
ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.7 ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.8
4.你已经完成了
切换命令:
jenv使用java 1.8
设置默认值:
jenv默认java 1.7
答案 5 :(得分:26)
这有点棘手,但请尝试按照Installing Java on OS X 10.9 (Mavericks)中描述的步骤进行操作。基本上,您必须将别名更新为java
。
一步一步:
安装JDK 1.7后,您需要执行sudo ln -snf
才能将链接更改为当前java
。为此,请打开终端并发出命令:
sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents \
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
请注意,目录jdk1.7.0_51.jdk
可能会更改,具体取决于您安装的SDK版本。
现在,您需要将JAVA_HOME
设置为指向安装jdk_1.7.0_xx.jdk
的位置。再次打开终端并输入:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home"
您可以在export JAVA_HOME
文件中添加上面的.bashrc
行,以便永久地将java放入您的终端
答案 6 :(得分:23)
安装JDK,而不仅仅是JRE
/usr/libexec/java_home -v 1.8
给出
/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
下
touch .bash_profile
open -a TextEdit.app .bash_profile
TextEdit会显示一个空白页面,您可以填写。
添加到doc:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
在终端:
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
尝试命令:
javac -version
应输出:
javac 1.8.0_111
答案 7 :(得分:14)
TL;博士
添加以下行:
export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home'
到文件
~/.bash_profile
替换为您下载的版本。
然后source ~/.bash_profile
答案 8 :(得分:12)
使用终端的四个简单步骤,适用于使用默认流程的人们。:)
/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/
为您提供了当前的Java主页。例如:cd /Library/Java/JavaVirtualMachines/
ls
将带您到通常安装jdks的文件夹中(对于您的计算机可能有所不同)
jdk1.8.0_191.jdk openjdk-11.0.2.jdk
显示可用的文件夹(通常会有版本号,例如:export JAVA_HOME='/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home'
)*
将更改Java主页。答案 9 :(得分:11)
使用jenv,它就像一个Java环境管理器。它非常易于使用和清洁
对于Mac,请按照以下步骤操作:
brew install jenv
git clone https://github.com/gcuisinier/jenv.git ~/.jenv
安装:如果您使用的是bash,请按照以下步骤操作:
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
将所需版本的JVM添加到jenv:
jenv add /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
jenv add /System/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home
检查已安装的版本:
jenv versions
通过以下方式设置要使用的Java版本:
jenv global oracle64-1.6.0
答案 10 :(得分:10)
function setjdk() {
if [ $# -ne 0 ]; then
removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
if [ -n "${JAVA_HOME+x}" ]; then
removeFromPath $JAVA_HOME
fi
export JAVA_HOME=`/usr/libexec/java_home -v $@`
export PATH=$JAVA_HOME/bin:$PATH
fi
}
将它放在您的〜/ .profile中并在您的终端中使用它,如setjdk 1.8
,setjdk 1.7
,setjdk 9
等等......
如果您没有removeFromPath
,那么它是:
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
答案 11 :(得分:8)
您可以将其添加到.bash_profile中,以默认设置版本。
//Open bash profile
open ~/.bash_profile
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
// run bash profile
source ~/.bash_profile
答案 12 :(得分:5)
别名j ='f(){导出JAVA_HOME =
variables: - group: ...
}; f'
$ source .zshrc
$ j 1.8
说明 这是参数化的,因此您不需要像发布的其他解决方案一样更新脚本。如果尚未安装JVM,则会提示您。以下示例案例:
/usr/libexec/java_home -v $1
答案 13 :(得分:5)
来自Apple的官方java_home(1) man page:
**USAGE**
/usr/libexec/java_home helps users set a $JAVA_HOME in their login rc files, or provides a way for
command-line Java tools to use the most appropriate JVM which can satisfy a minimum version or archi-
tecture requirement. The --exec argument can invoke tools in the selected $JAVA_HOME/bin directory,
which is useful for starting Java command-line tools from launchd plists without hardcoding the full
path to the Java command-line tool.
Usage for bash-style shells:
$ export JAVA_HOME=`/usr/libexec/java_home`
Usage for csh-style shells:
% setenv JAVA_HOME `/usr/libexec/java_home`
答案 14 :(得分:5)
考虑使用以下方法仅为终端的每个特定选项卡(即:iTerm
)更改 JDK。
在 /Library/Java/JavaVirtualMachines
路径中有以下两个 jdks
openjdk8u275-b01
openjdk-11.0.9.1+1
在 .bash_profile
文件中:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-11.0.9.1+1/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
如果您使用第一个 Tab A 打开 Iterm
并执行以下操作:
javac -version
javac 11.0.9.1
java -version
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1, mixed mode)
输出正确且符合预期
但是如果您打开第二个 Tab B 并覆盖该 JDK,请执行以下操作:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk8u275-b01/Contents/Home/
export PATH=$JAVA_HOME/bin:$PATH
然后
javac -version
javac 1.8.0_275
java -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_275-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.275-b01, mixed mode)
它工作正常。当然,如果 Tab B 已关闭或您打开一个新的 Tab C,则所有工作都根据 .bash_profile
设置
答案 15 :(得分:4)
如果仍然无法设置。使用此命令。
export JAVA_HOME = /usr/libexec/java_home -v 1.8
然后您必须使用此一个。
export JAVA_HOME = $(/usr/libexec/java_home -v 1.8)
它肯定会工作。
答案 16 :(得分:3)
我已经调整了@Alex上面的答案并编写了以下代码来修复Java 9的代码。
$ cat ~/.jdk
#!/bin/bash
#list available jdks
alias jdks="/usr/libexec/java_home -V"
# jdk version switching - e.g. `jdk 6` will switch to version 1.6
function jdk() {
echo "Switching java version $1";
requestedVersion=$1
oldStyleVersion=8
# Set the version
if [ $requestedVersion -gt $oldStyleVersion ]; then
export JAVA_HOME=$(/usr/libexec/java_home -v $1);
else
export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`;
fi
echo "Setting JAVA_HOME=$JAVA_HOME"
which java
java -version;
}
$ jdk 8
Switching java version 8
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
/usr/bin/java
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
$ jdk 9
Switching java version 9
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
/usr/bin/java
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
答案 17 :(得分:3)
首先找出将环境变量存储在何处-
设置环境变量的步骤:-
文件中现在已设置环境变量
a。对于 emacs.profile ,您可以使用此link或查看下面的屏幕截图
b。对于ZSH个人资料设置-
1. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
2. source ~/.zshrc - Restart zshrc to reflect the changes.
3. echo $JAVA_HOME - make sure path is set up properly
----> /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
4. java -version
--> java version "1.8.0_112" Java(TM) SE Runtime Environment (build 1.8.0_112-b16)Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)
已全部设置现在,您可以轻松升级或降级JAVA版本。
答案 18 :(得分:2)
如果你正在使用鱼,并且你正在使用mac,并且你希望能够在JDK之间切换,那么下面适用于mac。
将以下内容放在〜/ .config / fish / config.fish
下alias j8="jhome -v 1.8.0_162"
alias j9="jhome -v 9.0.1"
function jhome
set -g -x JAVA_HOME (/usr/libexec/java_home $argv)
echo "JAVA_HOME:" $JAVA_HOME
echo "java -version:"
java -version
end
funcsave jhome
要知道您安装了哪个版本/次要版本,您可以执行以下操作:
/usr/libexec/java_home -V 579ms Wed 14 Feb 11:44:01 2018
Matching Java Virtual Machines (3):
9.0.1, x86_64: "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
1.8.0_162, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
1.8.0_121, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
答案 19 :(得分:2)
macOS El Capitan 或更高版本将选择/Library/Java/JavaVirtualMachines
中可用的JDK的更高版本,因此,为了降级,您可以将文件Info.plist
重命名为其他名称Info.plist.disabled
,以便操作系统选择以前的版本。
答案 20 :(得分:2)
以前,我在.zshrc中使用别名来简化版本之间的切换,但是今天我使用SDKMAN。 SDKMAN还可以处理为系统设置默认Java,以及下载和安装新的Java版本。
一旦安装了sdkman,您就可以执行类似于使用nvm工具处理节点版本的命令。
sdk list java
将列出系统上可用的Java版本以及可以在线安装的Java版本,包括可以在sdk use
,sdk default
和sdk install
中使用的标识符。命令。
例如安装Amazon Corretto 11.0.8并询问是否应该是新的默认值,请执行以下操作:
sdk install java 11.0.8-amzn
我经常使用的功能是.sdkmanrc
文件。
如果将其放置在计算机上的目录中并在该目录中运行sdk env
命令,则可以配置仅在该目录中使用的工具版本。也可以使用sdkman_auto_env=true
配置自动制作sdkman切换工具版本。
sdkman还支持处理JVM的其他工具,例如gradle,kotlin,maven等。
有关更多信息,请查看https://sdkman.io/usage#env
答案 21 :(得分:2)
我将分享我使用 macOS Big Sur v11.4 的经验,解决这些问题的最佳方法是使用 Homebrew 安装 java:
1 - 安装 Homebrew。
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2 - 安装 Homebrew Cask。
$ brew tap homebrew/cask-versions
$ brew update
$ brew tap caskroom/cask
3 - 安装最新版本的 Java
$ brew cask install java
4 - 安装其他所需的 Java 版本(Java8、Java11、Java13)。
$ brew tap adoptopenjdk/openjdk
$ brew cask install adoptopenjdk8
$ brew cask install adoptopenjdk11
$ brew cask install adoptopenjdk13
$ brew cask install adoptopenjdk14
5 - 在不同版本的 Java 之间切换
在不同版本的 Java 之间切换,你只需要在你的 .bash_profile
或 .zshrc
中添加以下内容。
在这种情况下,我们希望能够在 Java8、Java11、Java13 和 Java14 之间切换:
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_13_HOME=$(/usr/libexec/java_home -v13)
export JAVA_14_HOME=$(/usr/libexec/java_home -v14)
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java13='export JAVA_HOME=$JAVA_13_HOME'
alias java14='export JAVA_HOME=$JAVA_14_HOME'
# default to Java 14
java14
6 - 重新加载 .bash_profile
或 .zshrc
以使别名生效:
$ source ~/.bash_profile
或
$ source ~/.zshrc
7 - 最后,您可以使用别名在不同的 Java 版本之间切换。
$ java8
$ java -version
java version "1.8.0_261"
有关更多信息,您可以查看此帖子:How to Use Brew to Install Java on Mac
答案 22 :(得分:1)
在/usr/libexec/java_home -V
给出的列表中包括单独安装的JDK的一种简单方法是按以下方式对目录进行符号链接:
sudo ln -s path/to/jdk /Library/Java/JavaVirtualMachines/jdk-[some-identifier].jdk
例如,要注册Android Studio随附的JDK(在撰写本文时为1.8.0_152),请使用:
sudo ln -s /Applications/Android\ Studio.app/Contents/jre/jdk /Library/Java/JavaVirtualMachines/jdk-android-studio.jdk
现在java_home
将在Matching Java Virtual Machines
下列出JDK,您可以如上所述选择它。
答案 23 :(得分:1)
将以下命令添加到~/.zshenv
文件
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
答案 24 :(得分:1)
根据@markhellewell的回答,我创建了几个别名函数,可以帮到你。只需将它们添加到shell启动文件
即可#list available jdks
alias jdks="/usr/libexec/java_home -V"
# jdk version switching - e.g. `jdk 6` will switch to version 1.6
function jdk() {
echo "Switching java version";
export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`;
java -version;
}
https://gist.github.com/Noyabronok/0a90e1f3c52d1aaa941013d3caa8d0e4
答案 25 :(得分:1)
我已经使用
在本地终端上完成了此操作export JAVA_8_HOME=(/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/)
export JAVA_13_HOME=(/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home/)
alias java8='export JAVA_HOME=$JAVA_8_HOME; alias java="$JAVA_8_HOME/bin/java"; $JAVA_8_HOME/bin/java -version'
alias java13='export JAVA_HOME=$JAVA_13_HOME; alias java="$JAVA_13_HOME/bin/java"; $JAVA_13_HOME/bin/java -version'
export JAVA_HOME=$JAVA_13_HOME
答案 26 :(得分:1)
如果您有多个版本并且想要使用特定版本运行某些版本,请使用以下示例:
/usr/libexec/java_home -v 1.7.0_75 --exec java -jar you-file.jar
答案 27 :(得分:0)
这是我在 Linux (Ubuntu / Mint mate)上执行的操作,我想Mac也可以做到这一点。
步骤:
/mnt/star/program/java/jdk-1.8
ln -s /mnt/star/program/java/jdk-1.8 /mnt/star/program/java/java
/mnt/star/program/java/java
是软链接。JAVA_HOME
。/etc/profile.d/eric.sh
之类的文件,也可以仅使用~/.bashrc
。JAVA_HOME=/mnt/star/program/java/java
java -version
应打印Java版本。/mnt/star/program/java/jdk-11
~/.bashrc
中,为各种Java版本定义变量。_E_JAVA_HOME_11='/mnt/star/program/java/jdk-11'
_E_JAVA_HOME_8='/mnt/star/program/java/jdk-8'
# dir of default version,
_E_JAVA_HOME_D=$_E_JAVA_HOME_8
~/.bashrc
中,定义命令以切换Java版本。## switch java version,
alias jv11="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_11 $JAVA_HOME"
alias jv8="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_8 $JAVA_HOME"
# default java version,
alias jvd="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_D $JAVA_HOME"
alias jv="java -version"
source ~/.bashrc
使更改生效。命令:
jv11
jv8
jvd
_E_JAVA_HOME_D
表示。jv
示例输出:
eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
eric@eric-pc:~$ jv11
eric@eric-pc:~$ jv
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
eric@eric-pc:~$ jvd
eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
eric@eric-pc:~$
JAVA_HOME
的软链接进行切换。在手动安装jdk的机器上,我保留次要版本,然后与主要版本但没有次要版本建立软链接。
例如
//这是实际目录,
jdk1.8.0_191
//这是到jdk1.8.0_191
的软链接
jdk-8
//这是指向jdk-8
或jdk-11
的软链接
java
我在~/.bashrc
中定义了命令别名,但在单独的文件中定义了变量。
我正在使用~/.eric_var
定义变量,并且~/.bashrc
将作为变量的来源(例如source $HOME/.eric_var
)。
答案 28 :(得分:0)
此工具将为您完成工作:
http://www.guigarage.com/2013/02/change-java-version-on-mac-os/
这是一个简单的JavaOne,可用于定义当前的Java版本。该版本可以在工具中选择版本后打开的shell中使用。
答案 29 :(得分:0)
function javav
set min_version 8
set max_version 99
set java_home_cmd '/usr/libexec/java_home 2>/dev/null --failfast --version'
if ! test (eval $java_home_cmd $argv)
echo "Version not found"
return 1
end
for current_version in (seq $min_version $max_version)
set path_to_remove (eval $java_home_cmd $current_version)
if ! test -z $path_to_remove
echo 'Removing' $path_to_remove 'from PATH'
set PATH (string match --invert $path_to_remove/bin $PATH)
end
end
echo 'Setting up env for Java' $argv
set -x JAVA_HOME (eval $java_home_cmd $argv)
set PATH $JAVA_HOME/bin $PATH
end
它基本上自动执行 this answer 中的步骤,类似于 this one,但也负责设置 PATH。
只需将它放在 .config/fish/functions/
中,然后像这样使用它:
javav 11 # Sets to Java 11
javav 16 # Sets to Java 16
答案 30 :(得分:-5)
太容易解决方案:真是令人头疼 - 这是一个对我有用的快速简便解决方案。
Mac OS Sierra版本10.12.13
使用快捷键:CMD + SHIFT + G - 键入“/ Library /”
找到JAVA文件夹
右键单击Java文件夹=移至废纸篓(需要密码)
安装: Java SE开发工具包8 jdk-8u131-macosx-x64.dmg | Download Javascript SDK