44 votes

JDK 8 n'est PAS installé - ERROR 404 : Non trouvé

Depuis hier, j'essaie d'installer le JDK8 sur ma machine Ubuntu, mais cela échoue constamment.

J'ai essayé d'exécuter les commandes :

sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

Mais je ne peux pas continuer car en exécutant la commande sudo apt-get install oracle-java8-installer tout ce que j'obtiens est :

...
Connecting to download.oracle.com (download.oracle.com)|23.215.130.99|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2017-10-18 11:07:34 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
...

Ma configuration est une Ubuntu 14.04 64 bits.

89voto

cavpollo Points 1918

Après avoir beaucoup cherché sur Internet, j'ai trouvé une réponse sur le forum Ubuntu .

En gros, le problème semble être qu'il existe une nouvelle version de java et que le programme d'installation n'a pas été mis à jour pour y faire référence.

Si votre machine est un Linux x64 avec un AMD64 vous avez besoin de la dernière version de Java8, et vous avez précédemment installé la version 8u212 ce problème peut être facilement corrigé en exécutant les commandes suivantes (le crédit pour la version originale revient à g1zmo2 ):

cd /var/lib/dpkg/info
sudo sed -i 's|JAVA_VERSION=8u212|JAVA_VERSION=8u221|' oracle-java8-installer.*
sudo sed -i 's|PARTNER_URL=https://download.oracle.com/otn/java/jdk/8u212-b10/59066701cf1a433da9770636fbc4c9aa/|PARTNER_URL=https://download.oracle.com/otn/java/jdk/8u221-b11/230deb18db3e4014bb8e3e8324f81b43/|' oracle-java8-installer.*
sudo sed -i 's|SHA256SUM_TGZ=.*|SHA256SUM_TGZ="15ad4f7260d2416ac1558341d9d0a0ec5b83904e4ac4a22c8a3242e4e217649b"|' oracle-java8-installer.*
sudo sed -i 's|J_DIR=jdk1.8.0_212|J_DIR=jdk1.8.0_2221|' oracle-java8-installer.*

Et ensuite exécuter les commandes de l'installateur de JDK 8 comme vous le feriez normalement =) :

sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

Si votre machine est pas a Linux x64 AMD64 votre version précédente n'était pas 8u212 o vous recherchez Java 9 et bien, vous avez de la chance. Aujourd'hui est le jour où vous apprendrez à réparer votre installateur java pour vos propres besoins.

Pour les besoins de ce tutoriel, nous supposerons que vous voulez Java 8u181 et que vous avez déjà installé Java 8u171 (car c'est ce que j'ai).

Tout d'abord, vous devez vous rendre sur la page de téléchargement des JDK de Java (pour Java8, aller ici cliquez sur "Téléchargements". onglet et ensuite "Java SE 8u181". enlace ).

Maintenant, cherchez la version du JDK dont vous avez besoin en fonction de votre machine. Dans mon cas, ma machine fonctionne sous Ubuntu 14.04 64-bit, donc j'ai besoin de "Linux x64".

JDK versions

Copiez le lien qui vous mène au téléchargement dont vous avez besoin. N'oubliez pas d'accepter le contrat de licence. Dans mon cas (Linux x64), j'ai besoin : http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz .

Pour les besoins de ce tutoriel, nous n'avons besoin que du chemin du lien : http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/ . Gardez-le en sécurité, nous en aurons besoin plus tard.

Maintenant, regardez le lien de la somme de contrôle dans la page et cliquez dessus .

Checksum link

Cela devrait vous amener à une page de tableau html simple. Cherchez simplement l'icône sha256 qui convient à votre machine.

Linux x64 SHA

Encore une fois, ma machine est un "Linux x64" donc j'ai besoin de 1845567095bfbfebd42ed0d09397939796d05456290fb20a83c476ba09f991d3 comme sur la photo. Copiez la valeur et gardez-la précieusement, nous en aurons besoin plus tard.

Maintenant, ouvrez un terminal sur votre machine et entrez dans le dossier où se trouve le fichier d'installation de java :

cd /var/lib/dpkg/info

Super, maintenant exécutez ça :

sudo grep --color -P "JAVA_VERSION=[a-z0-9]+" oracle-java8-installer.config

Le résultat devrait ressembler à ceci :

Installer's java version

Cela nous indique quelle est la version de Java que le programme d'installation est configuré pour installer. Pour modifier facilement ces valeurs, il faut donc exécuter quelque chose comme ceci :

sudo sed -i 's|JAVA_VERSION=<INSTALLER CURRENT JAVA VERSION HERE>|JAVA_VERSION=<NEW VERSION HERE>|' oracle-java8-installer.*

Dans notre cas, nous passons de 8u171 a 8u181 alors nous l'exécutons :

sudo sed -i 's|JAVA_VERSION=8u171|JAVA_VERSION=8u181|' oracle-java8-installer.*

Ok, maintenant nous devons mettre à jour l'url de téléchargement.

sudo grep --color -P "PARTNER_URL=[^ ]+" oracle-java8-installer.config

Installer's partner url

Pour le mettre à jour, nous devons exécuter une commande comme celle-ci :

sudo sed -i 's|PARTNER_URL=<INSTALLER CURRENT JAVA URL HERE>|PARTNER_URL=<NEW URL HERE>|' oracle-java8-installer.*

Vous vous souvenez de l'URL que je vous ai dit de sauvegarder au début ? Eh bien, nous en aurons besoin maintenant. Placez-la comme votre nouvelle url, comme ceci :

sudo sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/|' oracle-java8-installer.*

Après cela, nous devons mettre à jour la somme de contrôle. Alors s'il vous plaît exécutez cette commande :

sudo grep --color -P '[^#]SHA256SUM_TGZ="[^"]+"' oracle-java8-installer.config

Cela imprime deux SHA256 différents :

Installer's SHA256s

Remarquez qu'ils sont tous différents. Nous y reviendrons dans une seconde. Donc, pour mettre à jour le SHA256, nous devrions exécuter cette commande :

sudo sed -i 's|SHA256SUM_TGZ="<INSTALLER CURRENT JAVA HASH HERE>"|SHA256SUM_TGZ="<NEW JAVA HASH>"|' oracle-java8-installer.*

Mais comment savoir lequel des hachages Java actuels doit être remplacé ? Eh bien, nous devons connaître l'architecture de notre processeur :

dpkg --print-architecture

Dans mon cas, cela donnera amd64 . Cela signifie que je dois choisir le deuxième lien. Comment puis-je le savoir ? Eh bien, je lis le code source ( sudo gedit oracle-java8-installer.config ), alors faites-moi confiance :

  • Si votre architecture est i386 , i586 o i686 Prenez le premier.
  • Si amd64 , prends le deuxième.
  • Si armv7l o armv6l , prends le troisième.
  • Si armv8l , arm64 o aarch64 , prenez le quatrième.
  • Si rien de tout cela ne se produit, vous n'avez pas de chance...

Donc, comme le mien amd64 en utilisant le nouveau hachage que nous avons obtenu sur le site de Java, j'exécute :

sudo sed -i 's|SHA256SUM_TGZ="b6dd2837efaaec4109b36cfbb94a774db100029f98b0d78be68c27bec0275982"|SHA256SUM_TGZ="1845567095bfbfebd42ed0d09397939796d05456290fb20a83c476ba09f991d3"|' oracle-java8-installer.*

Enfin, nous devons modifier le nom du répertoire JDK de l'installateur, alors exécutez ceci pour trouver le répertoire actuel :

sudo grep --color -P "J_DIR=[^ ]+" oracle-java8-installer.config

Dans mon cas, cela a été imprimé :

Installer's JDK folder name

Nous devrions donc exécuter quelque chose comme ceci :

sudo sed -i 's|J_DIR=<INSTALLER CURRENT JDK VERSION HERE>|J_DIR=<NEW JDK VERSION>|' oracle-java8-installer.*

Étant ma version actuelle jdk1.8.0_171 J'exécute :

sudo sed -i 's|J_DIR=jdk1.8.0_171|J_DIR=jdk1.8.0_181|' oracle-java8-installer.*

Et... c'est tout. Nous sommes prêts à appeler l'installateur java, yay. (ouf... cela a pris plus de temps à taper que je ne le pensais au début).

2 votes

Correction pour 8u151-1~webupd8~0 :

1 votes

Il semble qu'il soit à nouveau périmé avec java 8u161 (404 not found), quelqu'un a un correctif mis à jour ?

0 votes

Je viens de tester la version de @Kenny Hung, il y a environ 1 heure, et cela a fonctionné. La réponse a été mise à jour en conséquence (elle a été mal copiée, désolé).

10voto

Albert Zhong Points 189

Merci pour la réponse de cavpollo pour le JDK 8u141.

Je vais donner un fix pour JDK 8u151-1~webupd8~0 (Utilisez plutôt le JDK 8i162) :

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.*

8voto

J'ai eu ça aujourd'hui avec Oracle qui passe de 8u181 à 8u191. J'ai suivi les étapes de @cavpollo et j'ai réussi à faire fonctionner mon matériel. Voici le correctif pour les versions 181 à 191 au cas où quelqu'un en aurait besoin :

cd /var/lib/dpkg/info
sudo sed -i 's|JAVA_VERSION=8u181|JAVA_VERSION=8u191|' oracle-java8-installer.*
sudo sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/|' oracle-java8-installer.*
sudo sed -i 's|SHA256SUM_TGZ="1845567095bfbfebd42ed0d09397939796d05456290fb20a83c476ba09f991d3"|SHA256SUM_TGZ="53c29507e2405a7ffdbba627e6d64856089b094867479edc5ede4105c1da0d65"|' oracle-java8-installer.*
sudo sed -i 's|J_DIR=jdk1.8.0_181|J_DIR=jdk1.8.0_191|' oracle-java8-installer.*

1 votes

Merci pour cette version mise à jour. Heureux de savoir que le tutoriel a fonctionné pour vous =)

0 votes

Oui, ça a bien marché, merci beaucoup pour ce tutoriel si bien documenté !

6voto

Martin Šuráb Points 167

Depuis quelques jours, cette solution de contournement est obsolète en raison de la nouvelle version de Java. A la place, utilisez ce remplacement :

sed -i 's|JAVA_VERSION=8u151|JAVA_VERSION=8u162|' oracle-java8-installer.*
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.*
sed -i 's|SHA256SUM_TGZ="c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f"|SHA256SUM_TGZ="68ec82d47fd9c2b8eb84225b6db398a72008285fafc98631b1ff8d2229680257"|' oracle-java8-installer.*
sed -i 's|J_DIR=jdk1.8.0_151|J_DIR=jdk1.8.0_162|' oracle-java8-installer.*

0 votes

Merci. Et voilà que je reste au travail tard un vendredi parce que mon playbook de déploiement de serveur web ansible ne peut plus installer java sur les hôtes, parce que, vraisemblablement, Oracle ne laissera pas les vendeurs redistribuer un binaire qu'ils ne font même pas payer. Comme s'il n'y avait pas assez de raisons pour passer à une alternative open source.

5voto

Voici la solution que j'ai trouvée pour Ubuntu Mate 16.04 x64 :

wget --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-linux-x64.tar.gz

mkdir /opt/jdk

sudo tar -zxf jdk-8u152-linux-x64.tar.gz -C /opt/jdk

update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.8.0_152/bin/java 100

update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.8.0_152/bin/javac 100

Crédit à océan numérique pour l'ajustement de l'en-tête.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X