如何在ubuntu中找到我当前的JAVA_HOME?我必须在安装Maven时设置java_home路径。
如何在ubuntu中找到我当前的JAVA_HOME?我必须在安装Maven时设置java_home路径。
Answers:
输入终端,
echo $JAVA_HOME
显示JAVA_HOME变量路径。
如果没有出现,请使用此设置
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
这将根据您的JDK类型和版本而有所不同
要显示,请遵循第一个命令。
按照这篇文章使用不同的JDK或在JDK之间切换
JAVA_HOME doesn't make jdk default, it just makes JAVA_HOME variable set to a path & if you want to use different jdk installed on same machine then check my answer, I have edited it.
如果你有JDK 1.6(对应于Java 6中),或者安装了较新的版本,你应该有一个指定的程序jrunscript
在你的PATH
。您可以使用它来找到对应的JAVA_HOME
。例:
$ jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'
/opt/local/jdk1.7.0_76/jre
您可以这样设置环境变量:
$ export JAVA_HOME="$(jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));')"
请注意,JRE不包括jrunscript
,因此仅在安装JDK时才有效,而不仅仅是JRE。
另一个可移植的选项是从以下位置提取JDK的绝对路径javac
:
export JAVA_HOME=`type -p javac|xargs readlink -f|xargs dirname|xargs dirname`
绝对javac
路径将传递到dirname
两次以/bin/javac
从末尾删除。完整提取目录如下:
$ type -p javac
/usr/bin/javac
$ readlink -f /usr/bin/javac
/usr/lib/jvm/java-8-oracle/bin/javac
$ dirname /usr/lib/jvm/java-8-oracle/bin/javac
/usr/lib/jvm/java-8-oracle/bin/
$ dirname /usr/lib/jvm/java-8-oracle/bin/
/usr/lib/jvm/java-8-oracle/
type -p javac|xargs readlink -f|xargs dirname|xargs dirname
无需设置即可使用(无需导出部分)知道目录。
要考虑更新替代机制:
$ update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre'
您可以这样设置环境变量:
$ export JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre')"
/jre
。您可以尝试export JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | sed -e 's/Value: //;s?/jre/bin/java??;')"
只需运行一个命令
sudo update-alternatives --config java
它会给像
Es gibt nur eine Alternative in Link-Gruppe java (die /usr/bin/java bereitstellt): /usr/lib/jvm/java-8-oracle/jre/bin/java
从这里,您可以将/ usr / lib / jvm / java-8-oracle /作为java主页。您现在可以将其导出到JAVA_HOME变量
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/
现在echo $ JAVA_HOME显示它
设置Java环境变量
PPA还包含一个用于自动设置Java环境变量的软件包,只需运行以下命令即可:
sudo apt install oracle-java8-set-default
对于Java 9和更高版本:
这个答案https://askubuntu.com/a/657468/963使用随附的Nashorn JavaScript引擎Nashorn打印java.home
系统属性。Nashorn已被弃用,因此可以使用jshell
Java 9中引入的替代方法。
echo 'System.out.println(java.lang.System.getProperty("java.home"));' | jshell -
在我的Ubuntu 18.10系统上会显示以下内容:
/usr/lib/jvm/java-11-openjdk-amd64