为什么我的 CentOS 机器认为我仍然安装了 Java 6 而不是 8?

为什么我的 CentOS 机器认为我仍然安装了 Java 6 而不是 8?

所以我在 CentOS 6 机器上安装了 Java 8;

rpm -qa

产量

jre1.8-1.8.0_161-fcs.x86_64

java -version

产量

java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

然而我的构建文件失败了,说的是;

build.xml:223:此构建需要 Java 版本 1.8,而不是 1.6.0_21

从这段代码来看:

  <target name="check_versions"
    depends="check_java_version">
    <fail message="This build requires Java version ${java.version.required}, not ${java.version}."
      unless="java.version.ok"/>
  </target>
  <target name="check_java_version">
    <property name="java.version.required" value="1.8"/>
    <condition property="java.version.ok">
        <contains string="${java.version}"
                  substring="${java.version.required}"/>
    </condition>
  </target>

无论如何,我做了一些天真的事情。当我去安装 Java 8 时,我当然必须先卸载旧版本。但是我不知道旧的 Java 版本是如何安装的,或者如何卸载它。 rpm 无法识别已安装的 Java 6 软件包,yum 也无法识别任何内容。例如我无法使用 rpm 或 yum 来卸载它。它存在于 /home/products 中,但在里面我没有找到任何类型的卸载可执行文件

所以,我用暴力简单地删除了整个目录(并使用rpm来安装8)。现在我猜测有一些类似于窗口注册表的东西仍然存在。我该如何解决这个问题?

答案1

听起来您的系统上仍然安装了 Java 1.6 版本。此外,诸如$JAVA_HOME和 之类的环境变量$JRE_HOME可能仍设置为旧目录。还可能存在/usr/java/latest指向以前版本的符号链接。

我建议先搜索旧版本的安装路径和环境变量。为此,您可以使用以下命令:

sudo find / -name "java"
grep --color -ir "JAVA_HOME\|JRE_HOME" /{etc,opt,var}/*

相关内容