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)
# 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;
}
**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`
23条答案
按热度按时间5q4ezhmt16#
首先找出环境变量的存储位置-
emacs公司
bash\u简介
zshrc文件
设置环境变量的步骤:-
从java下载jdk
双击安装
现在在文件中设置环境变量
答。对于emacs.profile,您可以使用此链接或查看下面的屏幕截图
b。用于zsh配置文件设置-
现在,您可以轻松地升级或降级java版本。。
y1aodyip17#
基于@markhellewell answer,我创建了两个别名函数,可以为您实现这一点。只需将这些添加到shell启动文件中
https://gist.github.com/noyabronok/0a90e1f3c52d1aaa941013d3caa8d0e4
ivqmmu1c18#
从苹果官方的java\ U主页(1)手册页:
g0czyy6m19#
如果您有多个版本,并且希望使用特定的版本运行某个程序,请使用以下示例:
ddhy6vgd20#
安装jdk,而不仅仅是jre
给予
下一个
文本编辑将显示一个空白页,您可以填写。
添加到文档:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
在终端:请尝试以下命令:
javac -version
应输出:qaxu7uf221#
如果你仍然无法设置它。使用此命令。
导出java\u主页=
/usr/libexec/java_home -v 1.8
那你得用这个。导出java\u主页=
$(/usr/libexec/java_home -v 1.8)
它肯定会起作用的。v1l68za422#
这个答案试图解决以下问题:在macos el capitan或更新版本(sierra、high sierra、mojave)上安装多个版本的jdk用于开发时,如何控制java版本的系统范围(不仅仅是在当前运行的shell中)。据我所知,目前没有一个答案是这样的(*)。
作为一个开发人员,我使用了几个jdk,我想很容易地从一个jdk切换到另一个jdk。通常我有一个最新的稳定的一般用途,和其他测试。但我不希望系统(例如,当我启动ide时)使用我目前拥有的最新“早期访问”版本。我想控制系统的默认值,这应该是最新的稳定。
以下方法至少适用于Java7到Java12(在撰写本文时提前访问),适用于oracle jdk或openjdk(包括2018年10月中旬之后由openjdk生成的版本)。
无第三方工具的解决方案:
将所有jdk保留在它们的默认位置
/Library/Java/JavaVirtualMachines
. 默认情况下,系统将选择最高版本。要在默认情况下排除拾取jdk,请重命名其
Contents/Info.plist
至Info.plist.disabled
. 当$JAVA_HOME
指向它,或者在脚本或配置中显式引用。它将被系统的java
命令。系统启动器将使用jdk的最高版本在那些有
Info.plist
文件。在使用备用jdk的shell中工作时,从现有答案中选择您的方法(
jenv
,或自定义别名/脚本/usr/libexec/java_home
等)。调查的细节。
(*)当前的答案要么已经过时(不再适用于macos el capitan或sierra),要么只针对单个jdk,要么不针对系统范围的方面。许多人解释如何改变
$JAVA_HOME
,但这只会影响当前shell以及从中启动的内容。它不会影响从os启动程序启动的应用程序(除非您更改正确的文件和注销/登录,这很乏味)。对jenv来说也是一样,很酷,但据我所知,它只是改变了环境变量,所以它有同样的限制。ufj5ltwl23#
将以下命令添加到
~/.zshenv
文件