alias j8='export JAVA_HOME=$JAVA_HOME8; export PATH=$JAVA_HOME/bin:$PATH'
alias j9='export JAVA_HOME=$JAVA_HOME9; export PATH=$JAVA_HOME/bin:$PATH'
终端测试:
% j8
% java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
% j9
% java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
编辑:Java 10的更新
export JAVA_HOME10=`/usr/libexec/java_home --version 10`
alias j10='export JAVA_HOME=$JAVA_HOME10; export PATH=$JAVA_HOME/bin:$PATH'
14
如果您需要在Mac OS X(Yosemite)下拥有多个版本的JDK,那么为它们之间的自动切换添加一些脚本可能会有所帮助 .
你要做的是编辑 ~/.bash_profile 并添加以下内容:
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
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
setjdk 1.7
23 回答
以下对我有用 . 我在安装了Java 8的OSX Yosemite上使用ZSH .
以下命令
/usr/libexec/java_home
发出JDK home的路径:/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
在你的
~/.zshrc
中,对于macOS Mojave 10.14.1和JAVA 11.0.1我将配置文件设置为
键入终端此确认:
升级我的Mac OS后,我遇到了同样的问题:
cmd> vi~ / .bash_profile
添加/更新JAVA_HOME的行:export JAVA_HOME =“/ Library / Java / JavaVirtualMachines / jdk1.7.0_15.jdk / Contents / Home”
cmd> source~ / .bash_profile或打开一个新终端
我认为jdk版本可能有所不同,所以只需使用/ Library / Java / JavaVirtualMachines /下的版本
对于mac用户 . java 8应该添加
java 6:
ref:http://qiita.com/seri_k/items/e978c1339ce51f13e297
上述答案都没有帮助我 . 我想所有的答案都适合年龄较大的
OS X
对于OS X Yosemite 10.10,请按照下列步骤操作
使用您喜欢的文本编辑器打开:
~/.bash_profile
在文件中添加以下行并保存(:对于vim,后跟“x”):
然后在终端中输入以下两个命令来查看输出:
在第二行中,您将更新
.bash_profile
文件的内容 .对于OS X,您可以:
对我来说,Mountain Lion 10.8.2,最投票的解决方案不起作用 . 我通过Oracle和maven从homebrew安装了jdk 1.7 .
我的解决方案来自我自己安装的hadoop的hadoop-env.sh文件 . 我在〜/ .bash_profile中添加了以下句子,它可以工作 .
此解决方案也适用于从Oracle安装的Java 1.8的OS X Yosemite .
我的方法是:
的.bashrc
这使得在J6和J7之间切换变得非常容易
对于Mac OS X 10.9,我从Oracle安装了最新版本的JRE,然后将JAVA_HOME重置为/ Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home .
我相信有一个更好的方法,但让我开始运行 .
hughsmac:~hbrien $ echo $ JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
对于Mac Yosemite,
JDK 1.7.0_xx正在使用
更新Java 9和一些简洁的别名 .
在
.bash_profile
:请注意,对于最新版本,它是
9
而不是1.9
.设置活动Java:
在不同版本之间切换的一些额外别名:
终端测试:
编辑:Java 10的更新
如果您需要在Mac OS X(Yosemite)下拥有多个版本的JDK,那么为它们之间的自动切换添加一些脚本可能会有所帮助 .
你要做的是编辑 ~/.bash_profile 并添加以下内容:
该脚本的作用是首先删除 PATH 中的其他JDK版本,以便它们不会干扰我们的新JDK版本 . 然后它巧妙地使用 /usr/libexec/java_home 这是一个列出已安装的JDK版本的命令 . -v 参数告诉 java_home 使用提供的版本返回JDK的路径,例如1.7 . 我们还将 PATH 更新为指向新找到的 JAVA_HOME 目录的bin目录 . 最后我们可以简单地执行函数
它选择最新安装的1.7分支JDK版本 . 要选择特定版本,您只需执行即可
代替 . 运行 /usr/libexec/java_home -V 以获取有关如何选择版本的更多详细信息 .
附:保存后别忘了 source ~/.bash_profile .
以上没有_264581_的EC2工具,因为它预期在
JAVA_HOME
下面有bin/java
等 ./System/Library/Frameworks/JavaVM.framework/Home
确实有效 .OSX Yosemite,ZSH和Java SE Runtime Environment 8,我不得不:
$ sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands /System/Library/Frameworks/JavaVM.framework/Versions/Current/bin
并在〜/ .zshrc中将JAVA_HOME更改为
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/Current"
/usr/libexec/java_home
不是目录,而是可执行文件 . 它输出当前配置的JAVA_HOME并且不是Java Preferences应用程序的用途,在我的情况下它似乎已经破坏,并且实际上并没有正确地更改JVM . 它确实列出了1.7 JVM,但我可以切换/取消切换并拖放我想要的所有内容而不实际更改/usr/libexec/java_home
的输出 .即使在Lion上从Oracle安装1.7.0 u6并将其设置为首选项中的默认值之后,它仍然返回了Apple 1.6 java home . 实际上对我有用的唯一修复是手动设置JAVA_HOME:
至少这种方式从命令行运行时它将使用1.7 .
/usr/libexec/java_home
仍然坚持1.6 .Update :Understanding Java From Command Line on OSX对其工作原理有了更好的解释 .
是这样做的方式 . 请注意,将此更新为1.8工作正常 .
更好(更可升级)的方法是使用以下方法:
这应该适用于AWS,因为它在Home下面有
bin
安装Java optional package或Oracle JDK后,添加以下内容之一 ~/.bash_profile 文件的行将相应地设置环境变量 .
更新:添加 -v 标志基于Jilles van Gurp response .
在Mac OS X Lion上,要设置visualgc运行,我使用:
我在High Sierra 10.13.4上使用Fish shell并通过Brew安装Java .
它不是自动设置所以在我运行的系统上设置它correctly:
只需在
netbeans.conf
文件中设置1.8 jdk版本的java_home:取消注释:
并设置1.8 jdk的路径,在我的情况下:
这种方法让你在mac os上有几个jdk版本
这个答案与 Mountain Lion 有关,而不是狮子 . 我需要为AWS Command Line Tools执行此操作 . 根据the AWS docs,运行
which java
返回/usr/bin/java
.所以,我在
.bashrc
中设置JAVA_HOME=/usr
.显然,
/usr/bin/java
是/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
的符号链接,这使得一切正常 .Update
如下面的注释中所述,当
JAVA_HOME
环境变量要由AWS Command Line Tools以外的其他设备使用时,此JAVA_HOME
值不是理想的解决方案 . 但是,它适用于AWS Command Line Tools,正如其文档中所述 .任何使用澳大利亚税务局(ATO)的AUSKEY的人都应该卸载AUSKEY . 这解决了我的JAVA_HOME问题 .
MAC用户也不再需要它 . 呀!
较新的Oracle JVM(如1.7.0_21-b12)似乎安装在此处:
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home