我怎样才能找到我定义JAVA_HOME的地方

时间:2017-04-05 11:10:23

标签: java bash java-home

这是我的系统信息

wangbo@ubuntu:~$ uname -a
Linux ubuntu 4.4.0-72-generic #93-Ubuntu SMP Fri Mar 31 14:07:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

当我检查java版本

java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

但是当我回复$ JAVA_HOME

/usr/lib/jvm/java-9-oracle

它是无与伦比的,似乎我在某处定义了$ JAVA_HOME,但我找不到它,任何人都可以帮助我如何才能找到我的$ JAVA_HOME定义

其他有用信息:

  1. 我在
  2. 之前安装和卸载jdk9作为第一个jdk
  3. 它不在〜/ .bashrc
  4. 不在/etc/bash.bashrc
  5. 不在〜/ .profile
  6. 更新

    wangbo@ubuntu:~$ more /etc/environment
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
    

5 个答案:

答案 0 :(得分:6)

1)JAVA_HOME最有可能在/etc/profile.d/jdk.sh/etc/profile.d/jdk.csh中定义。遗憾的是,这些文件并非由update-alternatives系统管理。

2)您运行的哪个可执行文件应取决于update-alternatives系统,但如果您在PATH中强制使用特定版本,则不会。{/ p>

许多java应用程序实际上是由脚本调用的,这些脚本选择了他们喜欢的jvm来设置一致的环境,并且不应该受到您的问题的影响。最好是从shell获得一致的自由java调用环境,但是在大多数安装中我知道这是手动实现的......

某些java发行版根本不需要JAVA_HOME。在其他情况下,你需要它。我的建议是只有当你需要它时才定义JAVA_HOME。如果是这种情况,请在shell脚本中定义它,并使用该脚本调用您需要该特定值的命令。

答案 1 :(得分:0)

你应该更好地检查/ etc / environment

答案 2 :(得分:0)

在我的ubuntu 14.04系统上,内核4.4.0-71-generic我使用了以下内容:

$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

答案 3 :(得分:0)

您的Java命令是从PATH变量中选取的。最有可能的是,您已将Java7添加到路径中。检查.profile,.bash_profile,/ etc / profile和/ etc / environment文件。

某些脚本/工具使用

JAVA_HOMEant会想到) - 选择一个java命令。

答案 4 :(得分:0)

尝试

sudo find / -path /sys -prune -o -path /proc -prune -o -type f -exec grep -l JAVA_HOME {} + 2>/dev/null

抱歉,我的答案的第一个版本将永远。但这只需要一些时间,但它会找到该文件。