有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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


共 (2) 个答案

  1. # 1 楼答案

    首先,JAVA_HOME与此无关。(JAVA_HOME通常由包装器脚本等用于使用JAVA的应用程序,但不由任何JAVA可执行文件本身使用。)

    其次,您可能正在通过alternatives程序管理的符号链接运行java。(RHEL和类似发行版使用此实用程序,允许您选择安装在同一系统上的不同版本的实用程序。)

    无论哪种方式,运行以下命令都将帮助您了解发生了什么

    $ ls -l `which java`
    

    (然后沿着符号链接链一直到实际的可执行文件。)

  2. # 2 楼答案

    运行哪个可执行文件取决于路径变量。再检查一遍。如果不设置它就无法运行,除非您有一些奇怪的Linux配置,否则这是不可能的

    如果Java可执行文件位于当前目录中,它将由./java运行。因为它只与java一起运行,所以它位于PATH的某个地方