【问题标题】:Why this version of java?为什么是这个版本的java?
【发布时间】:2013-01-25 09:51:38
【问题描述】:

在我的 Red Hat 服务器上,java -version 输出;

$ 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 环境变量。同样,JAVA_HOME 未在 ~/.bash* 文件上设置。

为什么我的服务器在安装其他两个 Java 版本的同时使用此版本的 Java 以及如何使用?

【问题讨论】:

  • 检查您正在运行哪个 java 可执行文件(哪个 java),然后检查它是否是符号链接。
  • 您的 RedHat 版本可能正在使用“替代”机制。尝试运行/usr/sbin/alternatives --config java
  • However, neither PATH, nor JAVA_HOME environment variables are set 你确定PATH 根本没有设置吗?那会很奇怪
  • 试试which java,我怀疑它会给你/usr/bin/java,它会在你的PATH中
  • ls -l /usr/bin/java 显示什么?

标签: java linux java-home


【解决方案1】:

首先,JAVA_HOME 不参与其中。 (JAVA_HOME 通常由包装脚本等用于使用 Java 的应用程序......但不是由任何 Java 可执行文件本身使用。)

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

无论哪种方式,运行以下命令将帮助您弄清楚发生了什么。

$ ls -l `which java`

(然后跟随符号链接链,直到获得实际的可执行文件。)

【讨论】:

    【解决方案2】:

    运行哪个可执行文件取决于 PATH 变量。仔细检查一下。如果没有设置它就无法运行除非你有一些奇怪的 Linux 配置,否则它是不可能的。

    如果 Java 可执行文件在当前目录中,它将由 ./java 运行。因为它只使用java 运行,所以它位于PATH 的某个位置。

    【讨论】:

      猜你喜欢
      • 2010-12-07
      • 2013-10-11
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 2013-04-25
      • 2012-01-05
      • 2020-02-15
      • 1970-01-01
      相关资源
      最近更新 更多