这是我的系统信息
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定义
其他有用信息:
更新
wangbo@ubuntu:~$ more /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
答案 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_HOME
(ant
会想到) - 选择一个java命令。
答案 4 :(得分:0)
尝试
sudo find / -path /sys -prune -o -path /proc -prune -o -type f -exec grep -l JAVA_HOME {} + 2>/dev/null
抱歉,我的答案的第一个版本将永远。但这只需要一些时间,但它会找到该文件。