Installation d'Oracle JDK sur le sous-système Windows pour Linux


Lorsque j'essaie d'utiliser la version Linux du JDK d'Oracle sur la dernière version Windows 10 prenant en charge bash, je rencontre un problème avec l'invite suspendue chaque fois que j'essaie d'invoquer le binaire java.

Taper même quelque chose d'aussi simple que java -version se bloque et je dois mettre fin au processus pour reprendre le contrôle.

Quelqu'un a déjà fait fonctionner ça?

Author: River, 2016-04-07

10 answers

Je voulais préciser qu'à partir du 9 décembre 2016, vous pouvez certainement installer Java 8 sur Ubuntu Bash pour Windows 10 et que @Karl Horton est correct.

Vous devrez installer décompresser sudo apt-get install unzip

Copiez ce script quelque part dans votre session bash pour Windows et rendez-le exécutable (chmod +x filename). Si vous n'utilisez pas un éditeur basé sur la ligne de commande tel que vim, vous aurez des fins de ligne Windows à gérer. vous pouvez utiliser dos2unix ou votre façon préférée de traiter avec que. Je le colle simplement dans un fichier en utilisant vim.

 #!/bin/bash

set -ex

# UPDATE THESE URLs
export JDK_URL=http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
export UNLIMITED_STRENGTH_URL=http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip

# Download Oracle Java 8 accepting the license
wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" \
${JDK_URL}
# Extract the archive
tar -xzvf jdk-*.tar.gz
# clean up the tar
rm -fr jdk-*.tar.gz
# mk the jvm dir
sudo mkdir -p /usr/lib/jvm
# move the server jre
sudo mv jdk1.8* /usr/lib/jvm/oracle_jdk8

# install unlimited strength policy
wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" \
${UNLIMITED_STRENGTH_URL}
unzip jce_policy-8.zip
mv UnlimitedJCEPolicyJDK8/local_policy.jar /usr/lib/jvm/oracle_jdk8/jre/lib/security/
mv UnlimitedJCEPolicyJDK8/US_export_policy.jar /usr/lib/jvm/oracle_jdk8/jre/lib/security/

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/oracle_jdk8/jre/bin/java 2000
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/oracle_jdk8/bin/javac 2000

sudo echo "export J2SDKDIR=/usr/lib/jvm/oracle_jdk8
export J2REDIR=/usr/lib/jvm/oracle_jdk8/jre
export PATH=$PATH:/usr/lib/jvm/oracle_jdk8/bin:/usr/lib/jvm/oracle_jdk8/db/bin:/usr/lib/jvm/oracle_jdk8/jre/bin
export JAVA_HOME=/usr/lib/jvm/oracle_jdk8
export DERBY_HOME=/usr/lib/jvm/oracle_jdk8/db" | sudo tee -a /etc/profile.d/oraclejdk.sh

Et maintenant je peux faire ce qui suit

fieldju@DESKTOP-LTL6MIC:~$ java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)                                                

Les liens et les versions dans le script ci-dessus sont susceptibles d'être obsolètes au moment où vous lisez ceci, alors dirigez-vous simplement vers http://www.oracle.com/technetwork/java/javase/downloads/index.html acceptez la licence afin que leur js vous permette de copier les nouvelles URL et vous devriez être prêt à partir.

 52
Author: fieldju, 2017-05-31 02:59:45

Il semble qu'en août 2017, la solution soit plus simple comme suggéré par @noah-david.

J'ai pu installer Oracle JDK 8 à partir du référentiel d'équipe "WebUpd8" .

Instructions. Pour ajouter le référentiel:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

Pour installer:

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

Après l'installation

costin@amanta-win:/mnt/c/work$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

costin@amanta-win:/mnt/c/work$ which java
/usr/bin/java

costin@amanta-win:/mnt/c/work$ uname -a
Linux amanta-win 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 
  x86_64 x86_64 x86_64 GNU/Linux
 43
Author: raisercostin, 2017-12-28 15:54:46

Il doit me manquer quelque chose... tout ce que j'ai fait était:

sudo apt-get update
sudo apt-get install default-jdk

java -version

Sortie:

java version "1.7.0_131"
OpenJDK Runtime Environment (IcedTea 2.6.9) (7u131-2.6.9-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)
 11
Author: CraftyFella, 2017-06-01 13:36:48

J'ai utilisé le script donné par @fieldju mais il a manqué certaines choses dont dépend le script, et copier/coller le contenu entraîne également des fins de ligne Windows/des retours chariot (/r) qui devront être remplacés par des retours linux. En outre, j'ai trouvé beaucoup plus simple de télécharger les zips nécessaires en premier et de les mettre à côté du script. Voici une liste complète de ce que j'ai fait:

  1. Dans bash, tapez sudo apt-get install zip unzip pour vous assurer que unzip / zip est installé sur votre bash console
  2. Téléchargez la dernière version Linux du JDK Java à partir du site Web oracle (j'ai un système 64 bits, j'ai donc choisi "Linux x64") et enregistrez-le dans un dossier quelque part sur votre ordinateur où vous pouvez accéder dans bash REMARQUE: ne changez pas le nom du fichier pour vous assurer qu'il fonctionne]}
  3. Téléchargez la stratégie force illimitée séparément dans le même dossier que le dernier zip, en vous assurant à nouveau de conserver le nom de fichier tel quel.
  4. Copiez et collez ce qui suit script dans le bloc-notes et enregistrez-le sous java_install_predownloaded.sh dans le même dossier à côté des zips:

Script:

#!/bin/bash

# Extract the archive
tar -xzvf jdk-*.tar.gz

# mk the jvm dir
sudo mkdir -p /usr/lib/jvm
# move the server jre
sudo mv jdk1.8* /usr/lib/jvm/oracle_jdk8

# install unlimited strength policy
mv UnlimitedJCEPolicyJDK8/local_policy.jar /usr/lib/jvm/oracle_jdk8/jre/lib/security/
mv UnlimitedJCEPolicyJDK8/US_export_policy.jar /usr/lib/jvm/oracle_jdk8/jre/lib/security/

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/oracle_jdk8/jre/bin/java 2000
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/oracle_jdk8/bin/javac 2000

sudo echo "export J2SDKDIR=/usr/lib/jvm/oracle_jdk8
export J2REDIR=/usr/lib/jvm/oracle_jdk8/jre
export PATH=$PATH:/usr/lib/jvm/oracle_jdk8/bin:/usr/lib/jvm/oracle_jdk8/db/bin:/usr/lib/jvm/oracle_jdk8/jre/bin
export JAVA_HOME=/usr/lib/jvm/oracle_jdk8
export DERBY_HOME=/usr/lib/jvm/oracle_jdk8/db" | sudo tee -a /etc/profile.d/oraclejdk.sh

Ce code est une version modifiée de @ fieldju qui suppose que les zips sont déjà téléchargés et dans le même dossier que ce .sh fichier

  1. Parce que le fichier a les retours chariot Windows, vous devez vous assurer qu'ils sont remplacés, donc dans bash naviguez jusqu'à l'endroit où vous avez enregistré java_install_predownloaded.sh et exécutez ce qui suit commande:

    sed 's/^M$//' java_install_predownloaded.sh > java_install_predownloaded_unix.sh

J'ai également exécuté ce qui suit pour m'assurer qu'il n'y a certainement pas de terminaisons de ligne à partir de Windows:

sed 's/\r$//' java_install_predownloaded_unix.sh > java_install_predownloaded_unix_final.sh

  1. Après avoir exécuté ces 2 lignes, un fichier appelé java_install_predownloaded_unix_final.sh sera dans le dossier qui est notre version "nettoyée" sans les fins de ligne Windows, il vous suffit donc d'exécuter ./java_install_predownloaded_unix_final.sh dans bash et de regarder la magie se produire. Hey Presto vous avez maintenant java installé sur votre instance bash sous Windows!
 7
Author: AndroidNoob, 2017-05-19 15:44:40

Semble installer JDK8 ne fonctionne pas pour le moment sur la build#14316 de WSL. Mais essayer d'installer JDK7 a bien fonctionné pour moi. Explorer les limites de cette installation pour le moment et restera au courant. L'idée est venue d'ici: https://github.com/Microsoft/BashOnWindows/issues/196

 5
Author: Saurabh Mishra, 2016-04-16 06:11:56

Je confirme ici que Oracle JDK Version 8u102, x64 pour linux est installable ok sur Windows 10 Insider Build 14905, publié le 16 août 2016.

Téléchargeable ici après avoir accepté la licence

C:\>systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name:                   Microsoft Windows 10 Pro Insider Preview
OS Version:                10.0.14905 N/A Build 14905

J'ai suivi les instructions ici: wikiHow Oracle Java Installer

$ java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

$ javac -version
javac 1.8.0_102

Je n'ai pas encore eu l'occasion de vraiment insister sur cette installation, mais c'est mieux que les blocages précédents.

 4
Author: Karl Horton, 2016-08-22 01:57:39

Les étapes que j'ai faites pour une nouvelle installation d'Oracle JDK 8 sur mon Bash (Windows 10):

  1. sudo apt-get install python-software-properties
  2. sudo add-apt-repository ppa:webupd8team/java
  3. sudo apt-get update
  4. sudo apt-get install oracle-java8-installer
  5. Accepter les licences

    Image

Vous avez terminé! Vérifiez votre version java en utilisant java -version et la sortie attendue devrait être quelque chose comme ceci:

java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

PS Au moment d'écrire ces lignes, la version stable Oracle 9 JDK a été publiée, vous pourriez probablement modifier l'étape 4 surtout.


Référence: https://poweruphosting.com/blog/install-java-ubuntu/

 3
Author: Keith OYS, 2017-10-24 03:45:01

Il semble que le problème soit survenu avec la version java oracle, j'ai téléchargé la version OpenJDK et maintenant cela fonctionne

 0
Author: Julien Richard, 2016-08-03 16:00:46

Il peut fonctionner pour Insider Preview build 14905, mais se bloque sur Windows 10 Pro build 14393. Une bonne partie du problème est que Microsoft utilise Ubuntu 14.0.4. 14.10 ou version ultérieure supporterait probablement mieux Java 8.

 0
Author: Mike Selender, 2016-09-25 18:45:31

Cela a fonctionné pour moi. Cependant, je n'aime pas ajouter ces dépôts étranges. Linuxuprising? Ce serait génial si Microsoft corrigeait cela.

sudo add-apt-repository ppa:linuxuprising/java
sudo apt update
sudo apt install oracle-java10-installer
 0
Author: Sören, 2018-06-14 18:35:59