如何验证rhel上是否安装了Java

如何验证rhel上是否安装了Java

我站起来了rhel VM。我很好奇 JDK 是否已安装,因此我从 shell (bash) 运行了一个命令。

whereis java

它返回:

java: /usr/bin/java

所以我导航到该路径以验证Java程序。

ls -l java

返回:

lrwxrwxrwx 1 root root 26 May 2016 10:52 java -> /usr/java/default/bin/java

到目前为止一切顺利,但是当运行java程序时:

java
-bash: java: command not found

看起来 java 有符号链接,但 /usr/java/default/bin/java 不再存在。我只是想验证是否安装了java(jdk),但从我所看到的情况来看,我不太确定。我想相信它没有安装,如果是这样,为什么系统返回 java: /usr/bin/java?

答案1

我想相信它没有安装,如果是这样,为什么系统返回 java: /usr/bin/java?

whereis不解析符号链接。因此,如果 /usr/bin/java 仍然存在,即使符号链接目标已损坏,它仍然会返回java: /usr/bin/java.我建议您使用type -a java以获得正确的结果。请注意,符号链接目标或非符号链接源文件,两者都必须是可执行的(chmod +x以设置它),否则type -a即使文件存在,命令也将返回未找到(type无论是否可执行,仍将返回)。

所以,我可以像下面这样简化:

whereis:即使符号链接损坏或不可执行,仍然返回。

类型:即使不可执行也返回“找到”,如果符号链接损坏则返回“未找到”。

type -a:当符号链接损坏或不可执行时返回未找到。

如果输入文件不存在,所有这些都会返回未找到。

所以,我可以建议的是重新安装 JDK,这“Oracle JDK”优于“OpenJDK”

可以找到一篇好文章这里

您可以执行以下操作(假设您的系统是 x64):

sudo rpm -ivh jdk-8u91-linux-x64.rpm
sudo rpm -ivh jdk-8u91-linux-x64-demos.rpm 

版本号为8u91以上版本不断更新,因此您应该经常访问甲骨文网站找出最新版本。点击JDK下载按钮将转到此它显示最新版本号及其正确的文件名。

您还可以下载文档,真正的链接可以在这里找到,并解压它(假设你的JDK已经安装在/usr/java/jdk1.8.0_91/):

sudo unzip jdk-8u91-docs-all.zip -d /usr/java/jdk1.8.0_91/ #optional

然后使用这两个命令选择正确的javac和java。我相信你只有一个选择(这个示例显示jdk1.8.0_74,因为我的不是最新的8u91):

$ sudo alternatives --config javac

There are 2 programs which provide 'javac'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.fc21.x86_64/bin/javac
   2           /usr/java/jdk1.8.0_74/bin/javac

Enter to keep the current selection[+], or type selection number: 2
$
$ sudo alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.fc21.x86_64/jre/bin/java
 + 2           /usr/java/jdk1.8.0_74/jre/bin/java

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

答案2

您可能必须配置替代项以指向 java,其在我的链接中进行了解释。

我注意到,尝试在 openjdk 上安装 Oracle Java 时,必须确保所有内容都正确链接并运行正确版本的 java。

如果使用 RPM 系统机器,我使用下面链接中的步骤来使其工作。

安装 Oracle Java JDK CentOS

下面的 Java 命令将验证替代方案是否已正确设置。

java -version

[root@somecomputer thebtm]# java -version
java version "1.8.0_77"
Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)

另一个侧面节点是,如果您已经安装了 Oracle Java 并且下载并安装了较新的 java rpm,则必须更新替代项以指向新版本的 java

[root@somecomputer thebtm]# alternatives --config java

There are 5 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           /usr/java/jdk1.8.0_66/bin/java
   2           /usr/java/jdk1.8.0_66/jre/bin/java
   3           /usr/java/jre1.8.0_77/bin/java
   4           /usr/java/jdk1.8.0_77/jre/bin/java
 + 5           /usr/java/jre1.8.0_91/bin/java

Enter to keep the current selection[+], or type selection number: 5
[root@somecomputer thebtm]# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

相关内容