私のCentOSシステムにJava 8の代わりにJava 6がインストールされていると思うのはなぜですか?

私のCentOSシステムにJava 8の代わりにJava 6がインストールされていると思うのはなぜですか?

そのため、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: このビルドには 1.6.0_21 以外の Java バージョン 1.8 が必要です。

このコードでは:

  <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をインストールしました)。これで、Windowsレジストリに似たものがまだ存在しているようです。この問題をどのように解決できますか?

答え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}/*

関連情報