即使未设置$ JRE_HOME,java -version也会正常显示

时间:2012-10-03 06:06:52

标签: java ubuntu path

我使用sudo apt-get open-jdk7在我的Ubuntu操作系统上安装Java。

当我打开终端并输入echo $JRE_HOME时,它什么也没显示。但后来我java -version它显示了OpenJDK的正确版本。此外,当我只输入java时,它就可以了。

不确定Ubuntu如何设置java的路径。

同样javac有效但我说echo $JAVA_HOME时看不到任何内容。

我的路径中没有显示java目录路径。

Ubuntu在哪里设置java路径?为什么Ubuntu在安装OpenJDK期间没有设置JAVA_HOMEJRE_HOME

3 个答案:

答案 0 :(得分:5)

一种常见的误解是,Java某种程度上需要将JAVA_HOMEJRE_HOME或类似的环境变量设置为有效。

事实上,javajavac(和相关的)可执行文件并不真正关心这些变量。它们只需要在PATH上(或者如果不在PATH上就可以通过完整路径执行)并通过查看“靠近它自己”找到它们的相关安装(即可执行文件通常安装在相对于JVM文件的已知位置。)

有一些第三方脚本使用JAVA_HOME和/或JRE_HOME来查找Java安装(Apache Tomcat就是一个众所周知的例子),但Java可执行文件本身并不需要这些变量。

关于Ubuntu如何找到可执行文件很容易回答:使用which javawhich javac找出键入这些命令时执行的可执行文件。在基于Debian的系统上,它们通常是the alternatives systems的一系列符号链接,指向实际的可执行文件。

答案 1 :(得分:1)

“ubuntu在哪里设置java路径?”,ubuntu没有自动设置open-jdk-java-path。 试试

find / -name "java"

找到javac。并写下

export JRE_HOME="xxx"

(其中xxx是open-jdk-jre的基础。)

顺便说一下:open-jdk没什么问题。你最好使用sun-jdk。

答案 2 :(得分:1)

在许多Linux发行版中,Ubuntu在其路径中都有/ etc / alternative。如果输入:

which java

然后你会得到

/etc/alternatives/java

如果输入:

ls -l /etc/alternatives/java

然后你会得到

/etc/alternatives/java -> /usr/lib/jvm/<your java version>

一些mors -l -s可以帮助你全面了解。