我如何知道我安装了哪个版本的 Java?

Str*_*ato 101 java jdk openjdk

我想开始玩弄 java(最终可以为 android 或 web 编写基本的小程序),但我已经设法让 java 在我的计算机上搞砸了(从过去的实验中)。

我不确定我拥有哪个版本的 java,想知道是否有命令可以查看已安装和活动的 java 版本。另外,哪个版本效果最好?所有这些都在 32 位 Ubuntu 12.04 上

编辑:
好的,看来我同时使用了 openjdk 6 和 7,并且使用了 openjdk 7。我想使用openjdk 7,那么如何卸载openjdk 6?仅通过 USC 就足够了还是应该运行一个命令?

Lui*_*ado 114

最简单的方法是:

update-java-alternatives -l 显示您已安装的所有 Java 版本。

java -version 显示您正在使用的 Java 版本。

java -showversion 显示您正在使用的 Java 版本和帮助。

通常它会是 OpenJDK。


Eli*_*gan 43

此命令应该告诉您当前提供 Java 虚拟机 ( java) 和 Java 编译器 ( javac) 的是什么:

file /etc/alternatives/java /etc/alternatives/javac
Run Code Online (Sandbox Code Playgroud)

这假设“替代方案”系统工作正常,但实际情况可能并非如此,这取决于 Java 过去是如何“搞砸”的。要检查这一点,请运行:

file `which java javac`
Run Code Online (Sandbox Code Playgroud)

如果替代系统工作正常并被 Java 使用,那么您应该看到:

/usr/bin/java:  symbolic link to `/etc/alternatives/java'
/usr/bin/javac: symbolic link to `/etc/alternatives/javac'
Run Code Online (Sandbox Code Playgroud)

否则,请编辑您的问题以提供详细信息。那么应该可以给出更具体的答案。


您可以openjdk-6使用软件中心删除。有多个包与之关联,因此您可能需要删除多个包。(此处列出了所有 `openjdk-6 软件包。)

或者您可以使用命令行:

sudo apt-get remove openjdk-6-\* icedtea-6-\*
Run Code Online (Sandbox Code Playgroud)

但是,无论您使用哪种方法,您都可能需要先检查哪些软件依赖于这些软件包——您可能安装了特别需要第 6 版的软件。(可能不是,但也有可能。)

您可以通过在命令行上模拟删除操作来检查这一点:

apt-get -s remove openjdk-6-\* icedtea-6-\*
Run Code Online (Sandbox Code Playgroud)

这将向您展示删除这些包的效果,包括还将删除哪些其他包。(您会注意到,由于这是一个模拟,因此您不需要sudo。)

如果您希望能够继续在您的 Web 浏览器中在线使用Java 内容(这与JavaScript 不同),那么在删除任何icedtea-6-openjdk-6-包(可能除外openjdk-6-jdk)之前,您应该确保已icedtea-7-安装对应于任何内容的包icedtea-6-安装了软件包。


rɑː*_*dʒɑ 18

爪哇

java -version
javac -version
Run Code Online (Sandbox Code Playgroud)

这些命令显示您安装的(java运行 Java 程序的解释javac器)和(创建它们的编译器)的版本。

有关详细信息,请参阅上图。