1

I used sudo apt-get open-jdk7 to install Java on my Ubuntu OS.

When I open a terminal and type echo $JRE_HOME it displays nothing. But then I do java -version it shows me correct version of OpenJDK. Also when I simply type java it works.

Not sure how Ubuntu set the path of java.

Similarly javac works but I don't see anything when I say echo $JAVA_HOME.

My path does not show java directory path in it.

Where is Ubuntu setting the java path? Why does Ubuntu not set JAVA_HOME and JRE_HOME during installation of OpenJDK?

4

3 回答 3

5

一个常见的误解是 Java 需要设置 或类似JAVA_HOMEJRE_HOME环境变量才能工作。

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

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

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

于 2012-10-03T06:13:44.330 回答
1

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

find / -name "java"

找到javac。和写

export JRE_HOME="xxx"

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

顺便说一句:你在使用 open-jdk 时遇到了麻烦。你最好使用 sun-jdk。

于 2012-10-03T06:12:01.710 回答
1

与许多 Linux 发行版一样,Ubuntu 的路径中有 /etc/alternatives。如果您键入:

which java

然后你会得到

/etc/alternatives/java

如果您键入:

ls -l /etc/alternatives/java

然后你会得到

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

一些 mor ls -l -s 可以帮助您全面了解情况。

于 2012-10-03T06:13:35.010 回答