在Ubuntu上安装Java 7

227

注意:此问题是在Oracle将OpenJDK变成Oracle JDK的免费版本之前提出的,历史答案反映了这一点。截至2022年,除非必须使用无法运行在OpenJDK 8上的项目,否则不应该使用Java 7。

我一直都是通过经典方式从终端安装Java。 我希望手动安装Java。 我把JDK文件夹放在桌面上,并设置了环境变量(PATH、CLASSPATH和JAVA_HOME)。 如果我在终端中输入java -version,就会打印出:

foralobo@ubuntu-vincy:~$ java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

但是当我尝试安装eclipse或netbeans时,系统会警告说在机器上没有安装Java。

手动安装需要什么?(Ubuntu 13.04)


我认为您需要运行update-alternatives命令告知Ubuntu其“新”的Java安装位置。 - flup
http://askubuntu.com/questions/55848/how-do-i-install-oracle-java-jdk-7 - Yan Foto
http://askubuntu.com/a/173951/11547 - Paweł Prażak
在AskUbuntu上,我回答了如何在更新的Ubuntu上安装Java 7或8的问题。这个答案也解决了“PPA已停用”的问题。 - Cadoiz
10个回答

551

这个答案曾经描述了如何安装Oracle Java 7。由于Oracle终止Java 7,将带有安全补丁版本的二进制下载放在付费墙后面,因此这不再适用。此外,OpenJDK已经发展壮大,现在是一个更可行的选择。

在Ubuntu 16.04及更高版本中,Java 7不再可用。通常最好安装Java 8(或9)。

sudo apt-get install openjdk-8-jre

或者,如果您也想要编译器,请获取JDK:

sudo apt-get install openjdk-8-jdk

在Trusty中,安装Java 7的最简单方法是安装OpenJDK包:

sudo apt-get install openjdk-7-jre

或者,针对JDK:

sudo apt-get install openjdk-7-jdk
如果您特别寻找在不再支持Java 7的Ubuntu版本上安装它的方法,请参阅https://askubuntu.com/questions/761127/how-do-i-install-openjdk-7-on-ubuntu-16-04-or-higher

1
添加了 @brent-robinson 的提示,关于如何设置环境变量。谢谢 Brent! - flup
3
安装了 oracle-java7-set-default 后,我无法回显 $JAVA_HOME。于是在 .bashrc 中手动设置了 $JAVA_HOME。 - Sumit Ramteke
1
@pekechis 两者都可以使用,apt-add-repository 是 add-apt-repository 的符号链接。这里说它在11.04中被添加了:http://askubuntu.com/questions/38021/how-to-add-a-ppa-on-a-server - flup
3
@sumitramteke 我的意思是注销并重新登录。环境变量在您登录时设置。 - flup
4
不再有效。Oracle似乎已经移除了二进制文件。请参见我下面的回答。 - Aniket Thakur
显示剩余11条评论

56
sudo apt-get update
sudo apt-get install openjdk-7-jdk

如果您已经安装了其他JDK版本

sudo update-alternatives --config java

然后选择Java 7版本。


2
你的意思是 "sudo apt-get update && sudo apt-get install openjdk-7-jdk"。 - dplass
4
这是最简单的解决方案,不需要添加额外的存储库。 - steve cook
2
选择的是OpenJDK还是由Oracle提供的版本。 - flup

48

1
请将其作为评论添加到@flup回答中 - Dan
3
我还没有足够的声望来评论别人的答案。 - Brent Robinson
链接到@flup的答案 - 不幸的是,编辑队列已满。 - Cadoiz

38

注意: 根据评论,此文本是从一个未注明来源的GIST中复制的。

https://www.oracle.com/technetwork/java/javase/downloads/index.html 下载 java jdk<version>-linux-x64.tar.gz 文件。

在您想要的位置提取此文件。例如:/home/java(用户在主目录中创建的文件夹)。

现在打开终端。 设置路径 JAVA_HOME=path 指向您的jdk文件夹(打开jdk文件夹,然后右键单击任何文件夹,在属性中找到路径并使用“全选”复制) 然后将其粘贴到这里。

例如:JAVA_HOME=/home/xxxx/java/JDK1.8.0_201

让Ubuntu知道我们的JDK/JRE的位置。

sudo update-alternatives --install /usr/bin/java java /home/xxxx/java/jdk1.8.0_201/bin/java 20000
sudo update-alternatives --install /usr/bin/javac javac /home/xxxx/java/jdk1.8.0_201/bin/javac 20000
sudo update-alternatives --install /usr/bin/javaws javaws /home/xxxx/java/jdk1.8.0_201/bin/javaws 20000
告诉Ubuntu我们的安装即jdk1.8.0_05必须成为默认Java。
sudo update-alternatives --set java /home/xxxx/sipTest/jdk1.8.0_201/bin/java
sudo update-alternatives --set javac /home/xxxx/java/sipTest/jdk1.8.0_201/bin/javac
sudo update-alternatives --set javaws /home/xxxxx/sipTest/jdk1.8.0_201/bin/javaws

现在尝试:

$ sudo update-alternatives --config java

有三种选择可替代java(提供/usr/bin/java)。

  Selection    Path                                  Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-oracle1/bin/java   1047      auto mode
  1            /usr/bin/gij-4.6                       1046      manual mode
  2            /usr/lib/jvm/java-6-oracle1/bin/java   1047      manual mode
  3            /usr/lib/jvm/jdk1.7.0_75/bin/java      1         manual mode

按下回车键保留当前选择 [ * ],或输入选择号码:3

update-alternatives: using /usr/lib/jvm/jdk1.7.0_75/bin/java to provide /usr/bin/java (java) in manual mode

请重复上述步骤以完成:

sudo update-alternatives --config javac
sudo update-alternatives --config javaws

我在一个GIST上看到了这个文本,这是你的还是复制/粘贴的? - onaclov2000
因为我没有发现上述任何一个能够正常工作 :) - Abhijit Bashetti
1
默认的Java或从仓库中安装失败,但是它起作用了,问题解决了。谢谢! - Arun
1
如果这段内容是从其他地方复制粘贴的,我认为最好明确说明,并附上原始来源的链接。 - lfurini
2
@lfurini:如果你读了所有的评论,我已经提到过了...我没有原始链接...我在这里添加的原因是...这样对其他人可能有用,他们不需要花时间去搜索...就像我投入了太多时间来获取正确的步骤一样...不想让其他人在这些事情上浪费时间... - Abhijit Bashetti

12

我认为您应该仔细考虑Java安装过程。以下是详细的过程,几乎涵盖了所有可能出现的故障。

使用apt-get安装Java非常容易。首先,更新软件包索引:

sudo apt-get update

然后,检查Java是否已经安装:

java -version
如果返回 "The program java can be found in the following packages",则表示 Java 尚未安装,因此请执行以下命令:
sudo apt-get install default-jre

在我看来,你到目前为止都还好。

这将安装Java运行时环境(JRE)。如果您需要Java开发工具包(JDK),通常需要编译Java应用程序(例如Apache Ant,Apache Maven,Eclipse和IntelliJ IDEA),请执行以下命令:

sudo apt-get install default-jdk

这就是安装Java所需的全部内容。

安装OpenJDK 7:

要安装OpenJDK 7,请执行以下命令:

sudo apt-get install openjdk-7-jre 

这将安装 Java Runtime Environment (JRE)。如果您需要 Java Development Kit (JDK),请执行以下命令:

sudo apt-get install openjdk-7-jdk

安装Oracle JDK:

Oracle JDK是官方的JDK;然而,Oracle不再将其作为Ubuntu的默认安装提供。

您仍然可以使用apt-get安装它。要安装任何版本,请首先执行以下命令:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

根据您想要安装的版本,执行以下命令之一:

Oracle JDK 7:

sudo apt-get install oracle-java7-installer

Oracle JDK 8:

sudo apt-get install oracle-java8-installer

4

PPA方法不再适用。

虽然Oracle Java 6和7已经不受支持了一段时间,但它们仍然可以在Oracle网站上下载到,直到最近。

然而,大约10天前,这些二进制文件被删除了,因此WebUpd8 Oracle Java PPA中可用的Oracle Java(JDK)6和7安装程序不再起作用。

现在,只有拥有Oracle支持帐户(非免费)的用户才能使用Oracle Java 6和7,因此我无法为PPA软件包提供支持。

来源:http://www.webupd8.org/2017/06/why-oracle-java-7-and-6-installers-no.html 日期:2017年6月

Oracle下载页面说明:

Java SE 7在2015年4月之后发布的更新,以及Java SE 6在2013年4月之后发布的更新,仅适用于通过My Oracle Support(需要支持登录)的Oracle客户。Java SE Advanced为用户提供商业功能、关键错误修复、安全修复和常规维护。

我不得不从Oracle档案中下载它 - http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html

不过,您需要一个帐户才能使用。


这是正确的,不过我使用了Abhijit Bashetti的答案使它完全运行:https://dev59.com/RWQo5IYBdhLWcg3wKsxr#28874505 - SebaGra

3

Oracle和现代版本的Ubuntu已经升级到了新版本的Java。Ubuntu 20.04的默认版本是OpenJDK 11,对于大多数目的来说已经足够好了。

如果你真的需要运行旧程序,Ubuntu 20.04的官方仓库中也提供了OpenJDK 8。

如果你确实需要Java 7,截至2020年最好的选择是下载Zulu发行版。如果你有root权限,最容易安装的是.DEB版本,否则请下载.ZIP版本。

https://www.azul.com/downloads/?version=java-7-lts&os=ubuntu&architecture=x86-64-bit&package=jdk#download-openjdk


2

从.deb软件包安装Oracle Java 1.7.0

wget https://raw.github.com/flexiondotorg/oab-java6/master/oab-java.sh
chmod +x oab-java.sh
sudo ./oab-java.sh -7
sudo apt-get update
sudo sudo apt-get install oracle-java7-jdk oracle-java7-fonts oracle-java7-source 
sudo apt-get dist-upgrade

1.7.0_51的解决方法

OAB目前存在一个问题123和一个拉取请求

以下是修复后的版本:

wget https://raw.github.com/ladios/oab-java6/master/oab-java.sh
chmod +x oab-java.sh
sudo ./oab-java.sh -7
sudo apt-get update
sudo sudo apt-get install oracle-java7-jdk oracle-java7-fonts oracle-java7-source 
sudo apt-get dist-upgrade

2

flup的答案是最好的,但它对我并不完全有效。我还需要执行以下操作才能使其工作:

  1. export JAVA_HOME=/usr/lib/jvm/java-7-oracle/jre/
  2. 在文件夹上使用chmod 777
  3. ./gradlew build - 构建Hibernate

777通常是个坏主意,因为其他人可以更改你的构建环境。请确保你是该机器上唯一的用户。 - Thorbjørn Ravn Andersen

-1
Open Applicaction -> Accessories -> Terminal

Type commandline as below...

sudo apt-get install openjdk-7-jdk

Type commandline as below...

apt-cache search jdk

(Note: openjdk-7-jdk is symbolically used here. You can choose the JDK version as per your requirement.)

For "JAVA_HOME" (Environment Variable) type command as shown below, in "Terminal" using your installation path...

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk

(Note: "/usr/lib/jvm/java-7-openjdk" is symbolically used here just for demostration. You should use your path as per your installation.)

For "PATH" (Environment Variable) type command as shown below, in "Terminal" using your installation path...

export PATH=$PATH:/usr/lib/jvm/java-7-openjdk/bin

(Note: "/usr/lib/jvm/java-7-openjdk" is symbolically used here just for demostration. You should use your path as per your installation.)

Check for "open jdk" installation, just type command in "Terminal" as shown below

javac -version

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接