如何安装Oracle JDK 6?

大部分软件都没有经过充分测试,适用于Java 7,我想在Ubuntu 11.10上安装Oracle的JDK 6.0。
请问有人可以提供给我相应的安装说明吗?
10个回答

由于许可问题,Ubuntu将不再分发Oracle的JDK和JRE。此外,PPA上提供的旧版本存在安全问题,不建议在任何Ubuntu系统上安装。
目前没有受支持的Java版本发布 - Ubuntu官方支持OpenJDK和OpenJRE实现的Java,这是Oracle自己实现的基础。
要安装OpenJDK和OpenJRE,请参考此问答
下面的说明提供了安装官方Oracle JDK 6的指南。您需要定期手动更新以确保安装保持推荐的安全性和稳定性修复。

安装Oracle JDK 6

Oracle JDK 6不再维护。它没有更新最新的安全补丁,不建议在生产环境中使用。
但是您仍然可以从Oracle Java Archive下载它们。
Oracle自己有官方指南来安装他们的JDK - 下面是基于这些说明。
  • 下载32位或64位Linux的"压缩二进制文件" - 它的文件扩展名为".bin"

  • 给予它执行权限并解压缩

    chmod a+x [version]-linux-i586.bin

    ./[version]-linux-i586.bin

在安装过程中,它会要求您进行注册 - 按下ENTER键。Firefox将打开注册页面。注册是可选的。

JDK 6 软件包被提取到 ./jdk1.6.0_x 目录中,例如 ./jdk1.6.0_30
让我们给它重新命名:
mv jdk1.6.0_30 java-6-oracle

现在将JDK 6目录移动到/usr/libsudo mkdir /usr/lib/jvm sudo mv java-6-oracle /usr/lib/jvm

切换到Oracle JDK 6

webupd8.googlecode.com提供了一个方便易用的脚本来帮助完成此操作。

wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/webupd8/update-java-0.5b
chmod +x update-java-0.5b
sudo ./update-java-0.5b

不用担心 - 0.5b指的是脚本版本,而不是Java的版本!
另一种选择是使用webupd8 ppaupdate-java软件包。

enter image description here

最后测试开关已经成功:

java -version
javac -version

这些应该显示已安装的Oracle版本-1.6.0_30

安装Firefox/Chrome插件

在终端中:

mkdir ~/.mozilla/plugins

如果已安装,请删除IcedTea插件。
sudo apt-get remove icedtea6-plugin

删除旧版本的Java插件(可能存在,也可能不存在)
rm ~/.mozilla/plugins/libnpjp2.so

现在你可以通过创建一个符号链接来安装插件(告诉Firefox插件的位置)。
(32位)
ln -s /usr/lib/jvm/java-6-oracle/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/

(64位)
ln -s /usr/lib/jvm/java-6-oracle/jre/lib/amd64/libnpjp2.so ~/.mozilla/plugins/

确认JRE是否安装成功,请使用官方Oracle网站

相关问题:

  1. 如何安装Java?
  2. 如何安装Oracle Java JDK 7?
  3. 如何安装Sun/Oracle的专有Java JDK 6/7/8或JRE?

2好的,我会尽量简单易懂地翻译。 - Praveen Sripati
3@MPi - 我也同意Bruno的评论 - 现在已经没有了"sun"或者"oracle"的软件包 '/usr/lib/jvmc 是所有其他Java实现都会放置的地方,此外,我们所保留的Oracle JDK的文件夹命名是自定义的,没有任何软件包会覆盖它,即使有也不会有问题,因为它会像这里一样执行。实际上,没有任何理由认为这不是一个几乎等同于系统范围内安装Oracle JDK的方法。如果您有其他建议,请告诉我,但这里使用的路径没有任何问题。 - fossfreedom
@fossfreedom 插件部分对我有效!! - Matteo
update-java包/脚本似乎不再包含Oracle软件包,但可以使用“sudo add-apt-repository ppa:webupd8team/java”和“sudo apt-get install oracle-java6-installer”。 - Radu Maris
在进行webupd8之前,请确保您的系统上已安装了gksu - Fredrick Gauss
现在在Oracle网站上似乎无法获取.bin文件了。:( - missingfaktor
sudo apt-get install oracle-java6-installer的回答(目前在下面)更好(现在)。 - Stephen
刚刚按照你的教程成功搭建了一个用于Android KitKat的构建服务器,使用的是Ubuntu 12.04系统。一切都运行得非常完美。你还应该提及如何注册$JAVA_HOME和$JRE_HOME,并更新$PATH变量。 - Raffaeu
1java -version没有显示Java 6 Oracle版本的结尾。但是@Bruno的解决方案有效。 - Samitha Chathuranga

Oracle的Java实现不被Ubuntu支持或分发的原因已经在这里讨论过了。

基本思路是由于Oracle的许可问题,官方的Ubuntu软件仓库不会包含Oracle的Java Se。

这并不妨碍您从PPA或从Oracle网站的官方软件包文件中安装Oracle的JDK。

本指南描述如何下载、安装和使用javajavacjavaws来自Oracle您的系统。

如何在Ubuntu 11.10上安装Oracle Java JDK6u30

(应该也可以适用于从Oracle下载的任何其他版本)

  • 下载Sun/Oracle Java JDK

从此处(当前版本为JDK 6 Update 30)http://www.oracle.com/technetwork/java/javase/downloads/index.html下载Sun/Oracle Java JDK或JRE。

注意:根据您的系统和偏好,选择任何Linux x86Linux x64二进制包(例如jdk-6u30-linux-i586.binjdk-6u30-linux-x64.bin)。

  • 将文件设为可执行

chmod +x /path/to/file/jdk-6u30-linux-*.bin

  • 运行Sun/Oracle Java JDK二进制文件并删除它

/path/to/binary/jdk-6u30-linux-*.bin && rm /path/to/binary/jdk-6u30-linux-*.bin

将在相同路径下创建一个新建的文件夹,其中包含提取的文件

  • 将文件夹移动到系统范围的路径,并给它一个更易识别的名称
创建/usr/lib/jvm目录 进入路径/path/to/binary/ 将路径/path/to/binary/jdk1.6.0_30移动至路径/path/to/binary/java-6-oracle,并将路径/path/to/binary/java-6-oracle移动至/usr/lib/jvm/


  • 将新版本的java、javac和javaws添加为系统备选项,并将其优先级设置为1
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-6-oracle/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-6-oracle/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/java-6-oracle/bin/javaws" 1
  • 选择要使用的新备选项
sudo update-alternatives --config java

选择您创建的java备选项

sudo update-alternatives --config javac

选择您新创建的javac备选项

sudo update-alternatives --config javaws

选择您新创建的javaws备选项

  • 测试您新增的javajavac

java -version应返回

java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) Client VM (build 20.5-b03, mixed mode, sharing)

而且 javac -version 应该返回

javac 1.6.0_30
  • 更新系统路径

用你喜欢的文本编辑器打开/etc/profile,例如:

gksudo gedit /etc/profile

导航到文件末尾并添加以下内容

JAVA_HOME=/usr/lib/jvm/java-6-oracle
JAVA_BIN=$JAVA_HOME/bin
PATH=$PATH:$JAVA_HOME:$JAVA_BIN
export JAVA_HOME
export JAVA_BIN
export PATH

重新加载系统范围的 PATH /etc/profile
. /etc/profile

这是针对Oracle的JDK,javajavacjavaws应该从Oracle的软件包中运行。
安装的版本可以通过将新版本复制到当前安装的文件上进行轻松更新。只需解压缩软件包并将新版本复制到当前已安装的版本上即可。
您可能希望检查/etc/alternatives以获取指向旧版JRE的链接 - 在像这样手动安装后,您的系统上可能找不到许多工具。

5建议将JDK放在/usr/lib下是不好的主意。自行将任何东西放在那里都是不明智的,这个区域应该由打包系统来处理。 - MPi
3@MPi,现在已经没有“sun”或“oracle”包了。'/usr/lib/jvmc'是所有其他Java实现的位置,此外,我们保存Oracle JDK的文件夹命名是自定义的,没有任何包会覆盖它,即使有也不会有问题,因为它将执行与此处相同的操作。这几乎可以看作是系统范围内安装Oracle JDK的方法,真的没有任何理由认为这里使用的路径有问题。如果您有任何进一步的建议,请提出来,但这里使用的路径没有任何问题。 - Bruno Pereira
3现在没有Oracle Java,但将来可能会有。但这不是重点。本地安装的软件不应该放在由打包系统处理的文件夹中。对于这种情况,可以使用/opt或/usr/local;还可以参考http://wiki.debian.org/FilesystemHierarchyStandard。 - MPi
所以当我按照你的指示操作时,update-java-alternatives没有看到新安装的Oracle JDK。有没有办法将update-java-alternativesupdate-alternatives同步? - James McMahon
@JamesMcMahon 你使用的是哪个版本的Ubuntu?如果需要,我可以测试并修复它。 - Bruno Pereira
@BrunoPereira 12.04 - James McMahon
在@BrunoPereira的回答中,最后一个update-alternatives命令有一个拼写错误。应该是:sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/java-6-oracle/bin/javaws" 1 目前它在中间使用了"java"而不是正确的"javaws" 此外,我认为JAVA_HOMEPATH环境变量应该设置在/etc/environment而不是/etc/profile。请参考:https://help.ubuntu.com/community/EnvironmentVariables#System-wide_environment_variables - Haprog
现在在Oracle网站上似乎无法获取.bin文件了。:( - missingfaktor
在Ubuntu 18.4 Bionic工作过。 - Adán

打开终端并逐个执行以下命令。它将安装JDK和JRE。无需配置任何东西,它会自动处理一切。
sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

JDK 6 和 JRE
sudo apt-get install oracle-java6-installer

或者适用于JDK 7

sudo apt-get install oracle-java7-installer

一旦执行完成,您可以通过输入“java -version”和“javac -version”来检查Java和JDK是否已安装。

由于Oracle Java已从存储库中移除,您将需要添加一个新的存储库,就像在本文中提到的那样。该存储库还包含了Oneiric的软件包。

注意:重要的是要对您正在安装的存储库/PPA进行信任

这可能会做任何事情。

因此,如果您信任下面的存储库和开发者;

Open up a terminal window under Application -> Accessories -> Terminal, adding the ppa > by:

sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update

Then, install java jre:

sudo apt-get install sun-java6-jre sun-java6-jre-plugin

Install Jdk by the command:

sudo apt-get install sun-java6-jdk

在官方的Ubuntu维基上有非常好的页面。在那里你可以找到所有推荐的方法。我使用了这个优秀的自动脚本

cd ~/
wget https://github.com/flexiondotorg/oab-java6/raw/0.2.6/oab-java.sh -O oab-java.sh
chmod +x oab-java.sh
sudo ./oab-java.sh

脚本将从源代码构建软件包并将其放置在本地仓库中,然后可以进行安装,例如:
sudo apt-get install sun-java6-jdk sun-java6-fonts sun-java6-source

您可以在/var/local/oab/deb中查看所有可用的软件包。
请记得选择正确的版本:
sudo update-alternatives --config java

要设置其他所有内容(如浏览器插件、keytool等),您可以使用以下内容(这将是一个很长的列表!):
sudo update-alternatives --all

这个脚本是这个Debian脚本的包装器,如果你感兴趣的话 ;)

我预计,ferramroberto的ppa在未来可能无法使用,因为不再允许重新打包Java。不幸的是,对于Canonical而言不允许的事情,其他任何打包者也都不允许。所以上面提到的解决方案可能是唯一的方法(基本上是update-alternatives的包装器!)。

http://www.webupd8.org/2011/09/how-to-install-oracle-java-7-jdk-in.html

通常来说,建议注册一个Oracle账户并订阅Java新闻通讯,以便在找到适合我们Ubuntu用户的更新通知解决方案之前,及时了解软件更新情况。

我按照上面链接中的指示进行操作,所以实际上我是通过这个链接:http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html 进行操作的,非常简单,值得一试。点赞。 - Roberto Alarcon

在许多情况下,完全切换到Oracle Java(或任何其他替代版本)是不必要的。许多需要非标准Java版本的应用程序可以通过显式调用所需的Java虚拟机来启动:
<path to alternative JRE>/bin/java -jar <application>.jar

也许在启动应用程序之前,还应该明确设置JAVA_HOME。
export JAVA_HOME=<path to alternative JRE>

我使用了以下的指示,直接从Oracle下载jdk二进制文件。这些指示也适用于jdk6。

Oracle现在拥有Sun,并将其更名为Oracle Java。如果您想安装最新版本的Java 6,可以在这里下载:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

二进制文件是一个自解压缩的存档文件。将其复制到您想要安装的位置,例如/opt/java
然后创建一个链接,
# update-alternatives /usr/bin/java java /opt/java/bin/java 0

如果需要的话,对于javac也做同样的操作。

在终端中运行以下命令(按下Ctrl+Alt+T键):
sudo add-apt-repository ppa:ferramroberto/java

如果你遇到这个错误: ``` sudo add-apt-repository command not found ``` 那么通过以下方式安装它: ``` sudo apt-get install python-software-properties ``` 然后再次运行该命令: ``` sudo add-apt-repository ppa:ferramroberto/java ```
然后执行:
sudo apt-get update
sudo apt-get install sun-java6-jdk

它对我来说运行得很好。

这种安装Java的方式并不好,因为该PPA仅提供非常旧的版本,其中存在严重的安全漏洞。Oracle已更改了专有Java JRE和JDK的许可条款,因此不能以这种方式自由重新分发。因此,再也没有PPA可以提供安全、最新的Java版本。关于PPA能够提供哪个版本以及原因的完整解释,无法在评论中进行。但是,如果您在这里发布一个关于此问题的新问题,并@EliahKagan提醒我,我会尽力回答。 - Eliah Kagan