Java Can';t使用yum或rpm在Fedora上安装jdk

Java Can';t使用yum或rpm在Fedora上安装jdk,java,centos,fedora,yum,openjdk,Java,Centos,Fedora,Yum,Openjdk,救命啊!我不知道如何安装jdk [/usr/lib/jvm]$ su -c "yum install java-1.7.0-openjdk-devel" Loaded plugins: langpacks, presto, refresh-packagekit No package java-1.7.0-openjdk-devel available. Error: Nothing to do [/usr/lib/jvm]$ su -c "yum install java-1.7.0-open

救命啊!我不知道如何安装jdk

[/usr/lib/jvm]$ su -c "yum install java-1.7.0-openjdk-devel"
Loaded plugins: langpacks, presto, refresh-packagekit
No package java-1.7.0-openjdk-devel available.
Error: Nothing to do

[/usr/lib/jvm]$ su -c "yum install java-1.7.0-openjdk"
Loaded plugins: langpacks, presto, refresh-packagekit
No package java-1.7.0-openjdk available.
Error: Nothing to do

[/usr/lib/jvm]$ su -c "yum install java-1.6.0-openjdk-devel"
Loaded plugins: langpacks, presto, refresh-packagekit
No package java-1.6.0-openjdk-devel available.
Error: Nothing to do

[/usr/lib/jvm]$ su -c "yum install java-1.6.0-openjdk"
Loaded plugins: langpacks, presto, refresh-packagekit
No package java-1.6.0-openjdk available.
Error: Nothing to do
这里我手动下载了一些rpm,最后一个是从oracle网站下载的:

[~]$ rpm -ivh java-1.7.0-openjdk-devel-1.7.0.19-2.3.9.3.fc20.x86_64.rpm 
error: Failed dependencies:
    java-1.7.0-openjdk = 1:1.7.0.19-2.3.9.3.fc20 is needed by java-1.7.0-openjdk-devel-1:1.7.0.19-2.3.9.3.fc20.x86_64


[~]$ sudo rpm -ivh java-1.7.0-openjdk-1.7.0.19-2.3.9.3.fc20.x86_64.rpm 
Preparing...                          ################################# [100%]
    file /usr/lib/jvm-exports/jre-1.7.0-openjdk.x86_64 from install of java-1.7.0-openjdk-1:1.7.0.19-2.3.9.3.fc20.x86_64 conflicts with file from package java-1.7.0-openjdk-1:1.7.0.9-2.3.7.0.fc18.x86_64
    file /usr/lib/jvm/jre-1.7.0-openjdk.x86_64 from install of java-1.7.0-openjdk-1:1.7.0.19-2.3.9.3.fc20.x86_64 conflicts with file from package java-1.7.0-openjdk-1:1.7.0.9-2.3.7.0.fc18.x86_64


[~]$ sudo rpm -ivh jdk-7u21-linux-x64.rpm 
Preparing...                          ################################# [100%]
    file /etc/init.d/jexec from install of jdk-2000:1.7.0_21-fcs.x86_64 conflicts with file from package jdk-2000:1.6.0_38-fcs.x86_64
调试 以下是一些调试信息:

[/usr/lib/jvm]$ yum search jdk
Loaded plugins: langpacks, presto, refresh-packagekit
=========================================================== N/S Matched: jdk ============================================================
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
jdk.x86_64 : Java(TM) Platform Standard Edition Development Kit
ldapjdk.noarch : The Mozilla LDAP Java SDK
Name and summary matches only, use "search all" for everything.

要求 我必须包括“jni.h”、“libjava.so”、“libhpi.so”、“lipverify.so”和“libjvm.so

到目前为止,我发现这些没有我需要的:

  • 不需要的版本(当然):

    • jdk1.7.0_06一般来说,我建议您安装Oracle JDK,而不是OpenJDK。否则,您可能会遇到一些问题。我总是发现OpenJDK存在各种各样的问题,我甚至都懒得再尝试了

      从下载JDK RPM,并按照通常的说明进行操作。它通常非常简单,没有问题

      完整详细的说明,包括如何安装

      确保您选择了所需的正确版本(JDK1.7或JDK1.6,不要混用),因为从您的问题中,您似乎混淆了从1.5到1.7的库版本


      还有一件事,在安装新的JDK之前,请卸载您已经安装的任何东西,以避免冲突。

      这里的问题是,当您已经拥有Oracle JDK 6时,您无法使用Oracle rpm安装JDK 7,因为它试图安装JDK 6已经安装且需要的
      /etc/init.d/jexec
      脚本

      如果您打算使用Oracle发行版,我建议您坚持使用tarball或自解压
      *.bin
      并使用JAVA_HOME,因为它没有这个问题,而且您可能不需要任何帮助。

      请在此处查看我的答案


      基本上,您可以使用rpm--force将一个JDK安装在另一个之上。特别是当您必须为不同的JAVA版本开发时,这个场景是完全有效的。

      刚刚遇到了同样的问题。我不习惯使用武力命令;不想冒着弄乱系统安装时安装的现有Java的风险

      最后,我做了以下工作,用不同的用户ID使用不同版本的Java运行应用服务器

      下载Java tar.gz版本并解压缩:

      tar -zxvf jdk-7u45-linux-x64.gz
      
      已创建目录:

      mkdir /usr/java/jdk1.7.0_45
      
      手动将内容复制到新目录:

      cp -r /.../jdk1.7.0_45/* /usr/java/jdk1.7.0_45
      
      在.bashrc和.bash_配置文件中的用户ID主目录下设置java_主目录:

      export JAVA_HOME=/usr/java/jdk1.7.0_45
      export PATH=$JAVA_HOME/bin:$PATH
      export PATH=$PATH:/usr/sfw/lib/gcc:/usr/sfw/bin 
      

      sudorpm-i jdk-11.0.9_linux-x64_bin.rpm
      或者你想安装的任何软件包

      在我的问题中,我说我从Oracle的网站下载了“jdk-7u21-linux-x64.rpm”,试图安装它,但它说了一些关于它的信息。。。然而,我能够从Oracles网站下载并安装jdk-6u45-linux-x64-rpm.bin,所以我猜较低版本可以工作!ThanksI假设在以前的openjdk版本中还残留了一些东西,这可能是冲突的原因(这就是为什么我说卸载您必须在干净系统上安装的任何东西)。很高兴您使用JDK1.6进行管理。请注意,我这里的答案现在已经过时,并且仅在JDK1.7的上下文中有效。从JDK 11开始,使用OpenJDK是一个不错的选择,除非您希望在生产中获得Oracle的许可支持,在这种情况下,使用Oracle JDK对您来说可能是有意义的。对于那些不希望只安装一个版本的人来说,这是正确的答案。
      cp -r /.../jdk1.7.0_45/* /usr/java/jdk1.7.0_45
      
      export JAVA_HOME=/usr/java/jdk1.7.0_45
      export PATH=$JAVA_HOME/bin:$PATH
      export PATH=$PATH:/usr/sfw/lib/gcc:/usr/sfw/bin