Wan*_*gbo 5 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
Run Code Online (Sandbox Code Playgroud)
当我检查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)
Run Code Online (Sandbox Code Playgroud)
但是当我回应$ JAVA_HOME
/usr/lib/jvm/java-9-oracle
Run Code Online (Sandbox Code Playgroud)
它是无与伦比的,似乎我在某个地方定义了$ JAVA_HOME,但我找不到它,任何人都可以帮助我如何才能找到我的$ JAVA_HOME定义
其他有用的信息:
UPDATE
wangbo@ubuntu:~$ more /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Run Code Online (Sandbox Code Playgroud)
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脚本中定义它,并使用该脚本调用您需要该特定值的命令.