在Ubuntu上安装Oracle 8 JDK

4

I get the following error:

Setting up oracle-java8-installer (8u151-1~webupd8~0) ...
Using wget settings from /var/cache/oracle-jdk8-installer/wgetrc
Downloading Oracle Java 8...
--2018-01-18 19:36:08--  http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz
Resolving download.oracle.com (download.oracle.com)... 104.104.142.192
Connecting to download.oracle.com (download.oracle.com)|104.104.142.192|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://edelivery.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz [following]
--2018-01-18 19:36:08--  https://edelivery.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz
Resolving edelivery.oracle.com (edelivery.oracle.com)... 2a02:26f0:d2:280::2d3e, 2a02:26f0:d2:296::2d3e, 23.40.218.189
Connecting to edelivery.oracle.com (edelivery.oracle.com)|2a02:26f0:d2:280::2d3e|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz?AuthParam=1516304289_6e7f201fb7eb1023c58104b7dd4cdec1 [following]
--2018-01-18 19:36:09--  http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz?AuthParam=1516304289_6e7f201fb7eb1023c58104b7dd4cdec1
Connecting to download.oracle.com (download.oracle.com)|104.104.142.192|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2018-01-18 19:36:10 ERROR 404: Not Found.

download failed
Oracle JDK 8 is NOT installed.
dpkg: error processing package oracle-java8-installer (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of default-jdk-headless:
 default-jdk-headless depends on openjdk-8-jdk-headless; however:
  Package openjdk-8-jdk-headless is not installed.
  Package oracle-java8-installer which provides openjdk-8-jdk-headless is not configured yet.

dpkg: error processing package default-jdk-headless (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of default-jdk:
 default-jdk depends on default-jdk-headless (= 2:1.8-56ubuntu2); however:
  Package default-jdk-headless is not configured yet.
 default-jdk depends on openjdk-8-jdk; however:
  Package openjdk-8-jdk is not installed.
  Package oracle-java8-installer which provides openjdk-8-jdk is not configured yet.

dpkg: error processing package default-jdk (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          No apport report written because the error message indicates its a followup error from a previous failure.
                         Errors were encountered while processing:
 oracle-java8-installer
 default-jdk-headless
 default-jdk
E: Sub-process /usr/bin/dpkg returned an error code (1)

一些方式在 /var/cache/oracle-jdk8-installer 中存在 jdk-8u151-linux-x64.tar.gz,每次尝试安装或甚至运行 sudo apt-get autoremove 都会抛出上述错误。 错误消息中Ubuntu尝试从Oracle网站获取JDK的链接不再存在。 我尝试过的方法:
  • sudo apt-get update && sudo apt-get upgrade
  • sudo apt-get clean
  • sudo apt-get autoclean
  • sudo apt-get autoremove
  • sudo apt-get purge openjdk*
  • sudo apt-get purge icedtea-* openjdk-*
  • sudo apt-get install -f

  • 我从软件和更新设置中删除了webupd8team

  • 我清除了var/cache/apt/archives
  • 我删除了整个oracle-jdk8-installer文件夹及其内容
有没有办法改变wget设置并实现此安装?

这篇文档 http://tipsonubuntu.com/2016/07/31/install-oracle-java-8-9-ubuntu-16-04-linux-mint-18/ 可能会有所帮助。 - seiya
似乎有其他人遇到了相同的问题,并且在以下链接中提供了可能的解决方案:https://askubuntu.com/questions/702274/error-while-setting-up-jdk8-on-ubuntu-14-04lts - raddevus
1个回答

4
这里的问题在于,Oracle决定每次发布新版本时完全删除旧版本的下载。因此,今天发布了162版本,并删除了web8upd存储库使用的151版本。目前,除非web8upd存储库的维护者更改版本,否则您可以使用此修复程序(hack):
cd /var/lib/dpkg/info
sudo sed -i 's|JAVA_VERSION=8u151|JAVA_VERSION=8u162|' oracle-java8-installer.*
sudo sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/|' oracle-java8-installer.*
sudo sed -i 's|SHA256SUM_TGZ="c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f"|SHA256SUM_TGZ="68ec82d47fd9c2b8eb84225b6db398a72008285fafc98631b1ff8d2229680257"|' oracle-java8-installer.*
sudo sed -i 's|J_DIR=jdk1.8.0_151|J_DIR=jdk1.8.0_162|' oracle-java8-installer.*

所有的功劳归功于这里:https://ubuntuforums.org/showthread.php?t=2374686&page=4&p=13731177#post13731177

顺便提一下,当他们更新至151版本时也出现了这个问题,未来也将继续发生...


运行得很好,谢谢。您能否解释一下这些调整是如何增加我的知识和经验的? - Mike
是的。基本上,您首先从“web8upd”存储库下载了Java包,但链接到Oracle网站的链接已损坏,因此在下载时会出现404错误并停止该过程。之后,您进入存储库的本地副本,并更改下载链接以指向最新的Java文件(基本上也是存储库维护者需要进行的更改)。然后它尝试从有效链接下载Java,并成功完成。 - Bojan Trajkovski

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