如何在Java安装文件夹中找到哪个版本的Java?

Mr *_*are 7 linux version java

我的 Linux 机器上安装了一个 java 版本。当我尝试这个时:

root@test$: javac -version

它给出的结果为:

javac jdk1.7.0_80。

现在我的问题是我不知道那个(1.7.0_80)java 文件夹在哪里。我在 usr/lib/jvm 中有一个名为“ java-7-oracle ”的文件夹。我怀疑它是已安装的 java 版本的文件夹。

现在我有一个 java 文件夹,我想知道它是哪个版本的 java?

如何??

Ija*_*han 8

我认为您可以通过检查 Java 二进制文件链接到的位置来跟踪所有这些。

       #which javac
          /usr/bin/javac   
       #ls -ln /usr/bin/java
           lrwxrwxrwx. 1 0 0 22 Nov 27 04:54 /usr/bin/java -> /etc/alternatives/java
       #ls -ln /usr/bin/javac
            lrwxrwxrwx. 1 0 0 23 Nov 27 04:54 /usr/bin/javac -> /etc/alternatives/javac
       # ls -ln /usr/bin/javadoc
            lrwxrwxrwx. 1 0 0 25 Nov 27 04:54 /usr/bin/javadoc -> /etc/alternatives/javadoc
Run Code Online (Sandbox Code Playgroud)

最后:

#ls -ld /etc/alternatives/java
lrwxrwxrwx. 1 root root 46 Nov 27 04:54 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
Run Code Online (Sandbox Code Playgroud)

因此,我的java安装是:

   /usr/lib/jvm/jre-1.7.0-openjdk.x86_64
Run Code Online (Sandbox Code Playgroud)

我想你可以像这样跟踪任何二进制文件。


Eig*_*ony 5

找出当您只键入名称时执行哪个二进制文件是使用 完成的which,并且使用readlink您可以将过程压缩为一行。

readlink -e $(which java)

readlink -e 打印符号链接或规范文件名的值,并且 -e 确保它递归地跟随每个组件。

tony@trinity:~$ readlink -e $(which java)
/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java
Run Code Online (Sandbox Code Playgroud)

注意:我没有在我测试过的机器上安装 javac,所以只使用了 java,但上面的方法适用于任何二进制文件。

您似乎还要求找出特定文件夹中的 java 版本?为此,您只需这样做,

/full/path/java -version
Run Code Online (Sandbox Code Playgroud)

这可以防止 Linux 搜索路径并直接找到 java 二进制文件。在你的情况下,

/usr/lib/jvm/java-7-oracle/javac -version
Run Code Online (Sandbox Code Playgroud)