我怎样才能知道我安装了哪个版本的Java?

我想开始尝试使用Java(最终能够编写Android或Web的基本小程序),但我已经把电脑上的Java搞砸了(从以前的实验中)。我不确定我有哪个版本的Java,并想知道是否有一个命令可以查看安装和活动的Java版本。此外,哪个版本最好?所有这些都在32位Ubuntu 12.04上。
编辑:
好吧,看起来我同时拥有openjdk 6和7,正在使用openjdk 7。我想使用openjdk 7,那么如何卸载openjdk 6?只通过USC足够好还是应该运行某个命令?
4个回答

最简单的方法是: update-java-alternatives -l 显示您已安装的所有Java版本。 java -version 显示您正在使用的Java版本。 java -showversion 显示您正在使用的Java版本和帮助信息。
通常情况下,这将是OpenJDK。

这个命令应该告诉你当前提供Java虚拟机(java)和Java编译器(javac)的是什么。
file /etc/alternatives/java /etc/alternatives/javac

这假设“alternatives”系统正常工作,这可能取决于Java过去被“搞砸”的程度。要检查这一点,请运行:
file `which java javac`

如果替代系统正常工作并被Java使用,那么你应该看到:
/usr/bin/java:  symbolic link to `/etc/alternatives/java'
/usr/bin/javac: symbolic link to `/etc/alternatives/javac'

否则,请编辑您的问题以提供详细信息。这样就可以给出更具体的答案了。
你可以使用软件中心来移除openjdk-6。与之相关的有多个软件包,所以你可能需要移除多个软件包。(所有的`openjdk-6`软件包都在这里列出。)
或者你也可以使用命令行:
sudo apt-get remove openjdk-6-\* icedtea-6-\*

无论使用哪种方法,您可能首先要检查一下依赖于这些软件包的内容,因为您可能安装了特定需要版本6的软件。(可能性不大,但有可能。)
您可以通过在命令行上“模拟”删除操作来进行检查:
apt-get -s remove openjdk-6-\* icedtea-6-\*

这将展示您移除这些软件包的效果,包括还会删除哪些其他软件包。 (您会注意到,由于这是模拟,您不需要使用 sudo。)

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


Java

java -version
javac -version

这些命令显示你安装了哪个版本的Java解释器(用于运行Java程序)和Java编译器(用于创建它们)。
有关详细信息,请参见上方的图像。

这是我做的,对我起作用的方法:
打开终端:
按下 control + alt + T
然后一次输入(或从这里复制粘贴)下面这些命令:
sudo rm /var/lib/dpkg/info/oracle-java7-installer*
sudo apt-get purge oracle-java7-installer*
sudo rm /etc/apt/sources.list.d/*java*
sudo apt-get update
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

为了保险起见,我建议重新启动一下。
要查找您的Java版本,请输入以下命令。
java -version

你应该看到类似于这样的输出结果:
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b20)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)

虽然你的系统将是32位的。
我强烈建议使用Java 7,但更新程序也会尝试安装Java 6。这没关系。但是你的默认版本应该仍然是7。只要你的显卡驱动程序正常工作,我所提供的一切都能正常运行。

如何安装Java 8? - Sundeep