在Linux中的JAVA_HOME目录

有没有我可以用来找出JAVA_HOME目录的Linux命令? 我试过打印出环境variables(“env”),但我找不到目录。

echo $JAVA_HOME将打印值,如果它被设置。 但是,如果您没有在启动脚本中手动设置,则可能未设置。

如果您尝试使用which java并且没有find任何内容,则可能不会在您的计算机上安装Java,或者至less不在您的path中。 根据您拥有的Linux发行版以及是否具有root访问权限,您可以访问http://www.java.com下载所需的版本。; 然后,你可以设置JAVA_HOME指向这个目录。 请记住,这只是一个约定,不应该用来确定是否安装Java。

在Linux上,你可以运行$(dirname $(dirname $(readlink -f $(which javac))))

在Mac上,您可以运行$(dirname $(readlink $(which javac)))/java_home

我不确定窗口,但我想象where javac会让你非常接近

我知道这是晚了,但是这个命令search/ usr /目录为你findjava

 sudo find /usr/ -name *jdk 

结果到

 /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-1.6.0-openjdk 

仅供参考,如果您在Mac上,目前JAVA_HOME位于

/System/Library/Frameworks/JavaVM.framework/Home

如果您的环境中定义了$JAVA_HOME

 $ echo $JAVA_HOME $ # I am not lucky... 

你可以从加载的类中猜测它。

 $ java -showversion -verbose 2>&1 | head -1 [Opened /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64/jre/lib/rt.jar] 

这种方法可以确保你find正确的jdk / jre ,以防万一有多个安装。

或者使用strace

 $ strace -e open java -showversion 2>&1 | grep -m1 /jre/ open("/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64/jre/bin/../lib/amd64/jli/tls/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) 

只是另一个解决scheme,这个跨平台(使用java ),并指出你的位置的JRE。

 java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home' 

输出java的所有当前设置,并find一个名为java.home

要显示您使用的环境variables的值:

echo $ VARIABLE

所以在你的情况下将是:

echo $ JAVA_HOME

如果你没有设置,你可以添加你的.bashrc文件:

export JAVA_HOME = $(readlink -f / usr / bin / java | sed“s:bin / java ::”)

当你更新软件包时它会dynamic地改变。

在terminal上键入:

回声“$ JAVA_HOME”

如果你没有得到任何东西,那么你的环境variablesJAVA_HOME还没有设置。 您可以尝试使用“locate java”来尝试发现Java安装位置。

你有没有设置你的JAVA_HOME

  • Korn和bash shell:export JAVA_HOME = jdk-install-dir
  • Bourne shell:JAVA_HOME = jdk-install-dir;导出JAVA_HOME
  • C shell:setenv JAVA_HOME jdk-install-dir

这是一个改进,只抓住目录到标准输出:

 java -XshowSettings:properties -version 2>&1 \ | sed '/^[[:space:]]*java\.home/!d;s/^[[:space:]]*java\.home[[:space:]]*=[[:space:]]*//' 

http://www.gnu.org/software/sed/manual/html_node/Print-bash-environment.html#Print-bash-environment

如果你真的想得到关于你的BASH的一些信息,把这个脚本放在你的.bashrc里,然后看它飞过。 你可以滚动浏览。