首页 文章

我在CentOS上有Open JDK 1.7;我安装的Oracle 's Java rpm; Oracle Java doesn'似乎存在

提问于
浏览
3

我从CentOS和OpenJDK 1.7开始

# java -version
java version "1.7.0_25"
OpenJDK Runtime Environment (rhel-2.3.10.4.el6_4-x86_64)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

为了运行特定的应用程序,我想使用RPM提供的Oracle Java 1.6 .

我将Oracle二进制文件复制到一个特定的新目录:

# pwd
/oracleJava/jdk-6u45-linux-x64-rpm

我提取了二进制文件,它给了我以下文件:

# ls
jdk-6u45-linux-amd64.rpm               
sun-javadb-core-10.6.2-1.1.i386.rpm  sun-javadb-javadoc-10.6.2-1.1.i386.rpm
sun-javadb-client-10.6.2-1.1.i386.rpm  sun-javadb-demo-10.6.2-1.1.i386.rpm
sun-javadb-common-10.6.2-1.1.i386.rpm  sun-javadb-docs-10.6.2-1.1.i386.rpm

我安装了RPM并且rpm实用程序认为它已正确安装:rpm -q jdk jdk-1.6.0_45-fcs.x86_64

# rpm -Uvh ./*.rpm
Preparing...                ########################################### [100%]
    package jdk-2000:1.6.0_45-fcs.x86_64 is already installed
# rpm -Uvh sun-javadb-*.rpm
 [I omit the feedback because it generates a formatting error]
#

但是,Java版本只显示了1.7#java -version java版本“1.7.0_25”OpenJDK运行时环境(rhel-2.3.10.4.el6_4-x86_64)OpenJDK 64位服务器VM(内置23.7-b01,混合模式)

换句话说,我期待Oracle文件在某处给我一些新的/ java目录,新的java可执行文件将为“java -version”返回一个不同的答案

我需要这个新目录,以便我可以设置JAVA_HOME并使用1.6版本的Java .

非常感谢有用的建议 . 提前致谢 .

5 回答

  • 0

    问题是Oracle的RPM(故意IMO!)对“替代”系统一无所知 .

    相反,他们在非标准位置(/ usr / java)安装东西,然后希望用户/系统管理员手动混乱PATH变量 .

    这是一件令人讨厌的事!


    所以在您的情况下可能发生的事情是您的JDK / JRE已安装在/ usr / java的子目录中...但由于您尚未将相关的 bin 子目录添加到 PATH 的前面,您仍然在拾起OpenJDK工具通过 java 命令名称 .


    您可以通过使用“alternative”配置然后选择Oracle命令来解决此问题 . 但它很混乱,特别是如果你也想要JDK工具 . (他们中有很多!)

    如果您使用Chef,另一种方法是使用“java”cookbook进行安装 .

  • 14

    Oracle JDK RPM很糟糕 .

    • 他们没有注册替代系统 .

    • 他们没有 Provide (以RPM为单位)"java"

    • 他们弄乱了他们的RPM 'version string'并依靠Epoch(...)

    • 所有版本的JDK(即1.6对1.7)具有相同的Epoch

    为了快速解决您的问题,您可以运行以下命令:

    /usr/sbin/alternatives --install /usr/bin/java java /usr/java/default/bin/java 20000
    

    它将注册并优先选择Oracle Java安装 . OpenJDK的重量为16000;这里我们注册20000.一旦你运行这个命令,你可以使用(已经提到的)替代--config java命令在java版本之间切换 .

    至于快速修复,您可以使用我的虚拟Java包 . 它's quite possibly not perfect (I'开放进行改进;)),但它提供java(使我的apache-tomcat包快乐)并注册替代系统 . 这个虚拟包只依赖于jdk ...你可以在这里找到它:https://github.com/keystep/virtual-java-rpm

  • 1

    运行以下命令以查看是否列出了JVM .

    sudo update-alternatives --config java

    如果列出了您的JVM,请选择它 .

  • 5

    请检查您的JAVA_HOME是否使用echo $JAVA_HOME 指向JDK 6 . 为了将 JAVA_VERSION 更改为Java 6,您需要指向Java开发套件6.您还需要将bin目录添加到 $PATH 变量 . 请确保JDK6 bin目录在其他JDK bin之前的$ PATH中(如果有) . 您可以通过命令 java -version 检查环境中Java的版本.learningloop的其他答案非常适合在不同的Java配置之间切换

  • 0

    尝试以下方法

    从中删除OpenJDK文件夹

    /usr/lib/jvm
    

    我有同样的问题,并通过这种方法得到解决方案

相关问题