问题 在Amazon Linux中切换到JDK 7


我有t1.micro 64位实例,我按照一些说明安装了JDK 7(sudo yum install java-1.7.0-openjdk-devel)(sudo yum update 等等)。所以,当我搜索它时,

sudo yum search openjdk

我得到以下 -

java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle

所以,两者都已安装。但是当我尝试使用时切换到JDK 7

sudo update-alternatives --config java 

我得到 -

There is 1 program that provides 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

为什么只显示6?

我试过其他命令,比如 -

sudo update-alternatives --set javac /usr/lib/jvm/java-7-openjdk/bin/javac

但没有成功。


3635
2017-11-20 22:27


起源

我此刻也正在与AWS争吵。但是除了Java以外的其他东西..希望+5让你至少有一次微笑这一天:) - hek2mgl
该 yum search 命令搜索可用于安装的软件包如果要查看已安装的软件包,请使用 yum list installed。 - hexacyanide
如何将答案标记为正确或发布适合您的内容? - DavidG


答案:


要确保安装了openjdk 7,请运行以下命令。

# rpm -qa | grep openjdk

如果已安装,则应列出1.6和1.7。如果它只列出1.6(就像你猜的那样),那么 sudo update-alternatives --config java 工作正常,您需要通过运行安装jdk 7 yum -y install java-1.7.0-openjdk

这是我机器的输出:

# rpm -qa | grep openjdk
java-1.7.0-openjdk-1.7.0.45-2.4.3.2.32.amzn1.x86_64
java-1.6.0-openjdk-1.6.0.0-65.1.11.14.57.amzn1.x86_64

# update-alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

Enter to keep the current selection[+], or type selection number:

13
2017-11-21 05:02



嗨,“rpm -qa | grep openjdk”命令列出的不是1,而是总共4 - 6,7和他们的“openjdk-devel”版本(可能是我安装了-devel)。但仍然“替代”命令只显示我提到的那个。 “yum list installed”显示所有这4个已安装。正如预期的那样“yum -y install java-1.7.0-openjdk”,告诉它已经安装好了。 - onlinenaman
删除了6,7。重新安装7,现在正在工作。 - onlinenaman