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