安装Oracle Java 7时apt-get命令停止工作了。

16

最近apt-get install -y oracle-java7-installer停止工作了。

我知道在他们的路线图中,公共版本已不再受支持,但直到最近它一直运行正常。 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

有人有解决方法吗?

http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz?AuthParam=1495560077_4041e14adcb5fd7e68827ab0e15dc3b1
Connecting to download.oracle.com (download.oracle.com)|96.6.45.99|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2017-05-23 10:19:17 ERROR 404: Not Found.

你安装了ppa吗? - Ollie in PGH
3
我认为这更适合于SuperUser,因为它与编程没有直接关系。 - Turing85
1
已向维护者发送了电子邮件,他说他们无法修复它。因此,如果您想继续使用webupd8 PPA,请升级到JDK8或手动下载并安装它。 - dvdgsng
5个回答

31

看起来Oracle已经更改了下载链接,您仍然可以通过一些步骤从Oracle网站获取tar ball。WebUpd8安装程序目前已经失效。官方解释可以在http://www.webupd8.org/2017/06/why-oracle-java-7-and-6-installers-no.html找到。


下载方法一:登录Oracle网站

现在链接似乎为:http://download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz请注意这里是“otn”而不是“otn-pub”,但至少从网站上,您似乎需要登录并不仅接受许可协议。

可能可以使用debconf将URL从otn-pub更改为otn,并使安装程序工作,但我没有尝试过。您可以自己提取二进制文件,然后手动安装或使用安装程序将其指向您放置已下载的tar ball的位置。

编辑:似乎没有办法配置下载URL(虽然您可以使用其他答案中的主机劫持它)。

下载方法二:使用受信任的镜像

如果您想从脚本中下载jdk-7u80-linux-x64.tar.gz而不登录到Oracle,则可以使用以下托管位置:

编辑:此答案中的sha256已被删除,因为(正如此编辑所示)任何人都可以编辑该哈希。请从受信任的来源获取您的哈希建议包括:


安装方法一:填充缓存

#put the file in the default cache location:
sudo mv jdk-7u80-linux-x64.tar.gz /var/cache/oracle-jdk7-installer/

#then install normally: 
sudo apt-get install oracle-java7-installer

安装方法2:(在我看来更优雅)将tar包放在任意位置,并告诉安装程序去哪里查找

#setup ppa (you probably came here after already doing this)
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

#put the file in a temporary location:
sudo mv jdk-7u80-linux-x64.tar.gz /tmp/


#set local path to /tmp (or any other path)
echo oracle-java7-installer oracle-java7-installer/local select /tmp | \
sudo /usr/bin/debconf-set-selections


#While your at it you may want tp approve license (or skip this and approve when prompted) 
echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | \
sudo /usr/bin/debconf-set-selections

#then install normally: 
sudo apt-get install oracle-java7-installer

2
请问您能否详细说明如何使WebUpd8安装程序重新运行(无论是指向tar包,更改URL或任何其他方式)? - josue.0
方法1运行良好。只需尝试在没有黑客的情况下安装,当出现异常时,将下载的文件复制到该目录中。确保文件已经被复制到那里。 - Emdadul Sawon

6

看起来直接下载链接不再有效(如上面的Meir Maor所指出的)

以下是重新运行此操作的步骤:

  1. Go to http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html and accept the license. Download the file we need (jdk-7u80-linux-x64.tar.gz in this case)

  2. Assuming the file downloaded to your Downloads directory, we need to move it to /var/cache/oracle-jdk7-installer

    cd ~/Downloads (Change to directory to which you saved file from step 1)
    sudo mkdir /var/cache/oracle-jdk7-installer
    sudo mv jdk-7u80-linux-x64.tar.gz /var/cache/oracle-jdk7-installer/
    
  3. Not sure if necessary but I had luck with this:

    echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
    
  4. Run the installer now. It will use the file we saved in /var/cache instead of trying to download it from Oracle

    sudo apt-get install oracle-java7-installer
    
我从http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html获取了第三步骤。

4

我在安装Java 6时遇到了问题(不要问我为什么要安装它)。

由于时间紧迫,我只需要一个快速而简单的答案。我注意到安装程序所寻找的URL是基于http的(而不是https),这使得下面的解决方案成为可能。

  1. 确保已安装Web服务器(我已经在我的电脑上安装了Apache)

  2. 下载所请求的文件。在您的情况下,即为jdk-7u80-linux-x64.tar.gz。请参见Meir Maor上面的答案

  3. 在本地Web服务器上,重新创建所请求的文件路径结构。在您的情况下,即为otn-pub/java/jdk/7u80-b15

  4. 将下载的文件复制到上述路径中。

  5. 编辑/etc/hosts并添加127.0.0.1 download.oracle.com

  6. 再次运行apt-get install -y oracle-java7-installer

  7. 安装程序现在将从您的本地Web服务器获取文件并成功完成。

可能有更好的方法来解决这个问题,但这对我有用。


0

由于Oracle对Debian软件包的支持已经相当长时间了,我想你可能使用webupd8的方法。

请前往他们之前链接的说明并检查您的配置是否仍然有效。

他们还提供了一种安装Java 8的方法:在Ubuntu中安装Oracle Java 8(从那里链接到Debian说明)。

编辑:我认为Oracle不再提供Java 7的公共下载 - 您必须从Java存档中下载它。(http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html)

您可以尝试下载rpm软件包并使用alien将其转换为.deb软件包。您是否已考虑升级到Java 8?


0

您可以在webupd8team ppa's online找到它。oracle-java7-installer的版本号为“7u80+7u60arm-0~webupd8~1”,我猜这个缺陷会出现在所有提供的Ubuntu版本中!

在其中一个ppa中查看,一些文件直接引用了Meir Maor识别出的错误网址。

debian/oracle-java7-unlimited-jce-policy.postinst:PARTNER_URL=http://download.oracle.com/otn-pub/java/jce/7/$FILENAME
debian/oracle-java7-unlimited-jce-policy.config:PARTNER_URL=http://download.oracle.com/otn-pub/java/jce/7/$FILENAME
debian/oracle-java7-installer.config:   PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/7u80-b15/$FILENAME # Must be modified for each release!!!
debian/oracle-java7-installer.config:   PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/7u60-b19/$FILENAME # Must be modified for each release!!!
debian/oracle-java7-installer.postinst: PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/7u80-b15/$FILENAME # Must be modified for each release!!!
debian/oracle-java7-installer.postinst: PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/7u60-b19/$FILENAME # Must be modified for each release!!!

很不幸,我还没想出如何向他们报告缺陷(但是)这应该是一个快速解决的问题。


实际上,这可能并不是一个简单的修复,因为只有在您登录之后才能访问Java 7安装程序的新位置... - Garden Gnome

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