这是我的系统信息
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
其他有用信息:
- 我之前安装和卸载 jdk9 作为第一个 jdk
- 它不在 ~/.bashrc 中
- 它不在/etc/bash.bashrc 中
- 它不在 ~/.profile 中
更新
wangbo@ubuntu:~$ more /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
最佳答案
1) JAVA_HOME
很可能定义在 /etc/profile.d/jdk.sh
和 /etc/profile.d/jdk.csh
不幸的是,这些文件不是由 update-alternatives
系统管理的。
2) 您运行哪个可执行文件应该取决于 update-alternatives
系统,但是如果您在您的 PATH
中强制执行了一个特定版本,它就不会。
许多 java 应用程序实际上是由脚本调用的,这些脚本选择它们首选的 jvm 设置一致的环境,并且不应受到您的问题的影响。最好为 shell 的免费 java 调用提供一致的环境,但是,在大多数安装中,我知道这是手动实现的...
一些 java 发行版根本不需要 JAVA_HOME。在其他情况下,您需要它。我的建议是只有当你需要它时才定义 JAVA_HOME。如果是这种情况,请在 shell 脚本中定义它并使用该脚本调用您需要该特定值的命令。
编辑:/etc/profile.d/jdk.sh
似乎是由oracle-java8-set-default
安装的。
# Uninstall the package (choose one)
sudo apt purge oracle-java8-set-default
sudo apt remove --purge oracle-java8-set-default
# Configure the desired Java binary
sudo update-alternatives --config java
sudo update-alternatives --config javac
关于java - 如何找到我定义 JAVA_HOME 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43229474/