linux为什么使用这个版本的java?
在我的Red Hat服务器上,java版本输出
$ java -version
java version "1.6.0_27"
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) 64-Bit Server VM (build 20.2-b06, mixed mode)
$
但是,既没有设置PATH
,也没有设置JAVA_HOME
环境变量。同样,在~/.bash*
文件上不设置JAVA_HOME
我的服务器为什么以及如何使用这个版本的Java,而同时安装了另外两个版本的Java
# 1 楼答案
首先,JAVA_HOME与此无关。(JAVA_HOME通常由包装器脚本等用于使用JAVA的应用程序,但不由任何JAVA可执行文件本身使用。)
其次,您可能正在通过
alternatives
程序管理的符号链接运行java
。(RHEL和类似发行版使用此实用程序,允许您选择安装在同一系统上的不同版本的实用程序。)无论哪种方式,运行以下命令都将帮助您了解发生了什么
(然后沿着符号链接链一直到实际的可执行文件。)
# 2 楼答案
运行哪个可执行文件取决于路径变量。再检查一遍。如果不设置它就无法运行,除非您有一些奇怪的Linux配置,否则这是不可能的
如果Java可执行文件位于当前目录中,它将由
./java
运行。因为它只与java
一起运行,所以它位于PATH
的某个地方