GNU/Linux >> Tutoriels Linux >  >> Linux

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

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 de l'équipe "WebUpd8".

Des 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

[email protected]:/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)

[email protected]:/mnt/c/work$ which java
/usr/bin/java

[email protected]:/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

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

Vous devrez installer unzip sudo apt-get install unzip

Copiez ce script quelque part dans votre session bash pour Windows et rendez-le exécutable (chmod +x nom de fichier). Si vous n'utilisez pas un éditeur basé sur la ligne de commande tel que vim, vous devrez gérer les fins de ligne Windows. vous pouvez utiliser dos2unix ou votre méthode préférée pour gérer cela. Je viens de le coller 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

[email protected]:~$ 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 rendez-vous simplement sur http://www.oracle.com/technetwork/java/javase/downloads/index.html acceptez le licence afin que leur js vous permette de copier les nouvelles URL et vous devriez être prêt à partir.


J'ai utilisé le script donné par @fieldju mais il a raté certaines choses dont dépend le script, et aussi copier/coller le contenu donne des fins de ligne Windows/retours chariot (/r ) qui devra être remplacé par les retours Linux. De plus, j'ai trouvé beaucoup plus simple de télécharger d'abord les zips nécessaires et de les mettre à côté du script. Voici une liste complète de ce que j'ai fait :

  1. En 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 sur le site Web d'Oracle (j'ai un système 64 bits, j'ai donc choisi "Linux x64") et enregistrez-la dans un dossier quelque part sur votre ordinateur auquel vous pouvez accéder dans bash REMARQUE :ne modifiez pas le nom du fichier pour vous assurer qu'il fonctionne avec le script
  3. Téléchargez la politique de 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 le script suivant dans le bloc-notes et enregistrez-le sous java_install_predownloaded.sh dans le même dossier à côté des zips :

Scénario :

#!/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 contient les retours chariot Windows, vous devez vous assurer qu'ils sont remplacés, donc en bash accédez à l'endroit où vous avez enregistré java_install_predownloaded.sh et exécutez la commande suivante :

    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 définitivement aucune fin 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 nommé 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 en bash et regardez la magie opérer. Hey Presto, vous avez maintenant installé Java sur votre instance bash sous Windows !

Il doit me manquer quelque chose... tout ce que j'ai fait, c'est :

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)

Linux
  1. Comment installer Oracle Java JDK 11/8 sur Ubuntu 16.04 et Linux Mint 18

  2. Comment installer Oracle Java JDK 17 sur Linux

  3. Comment installer Oracle Java JDK 18 dans Ubuntu 20.04 | Ubuntu 22.04

  4. Montage d'un partage Windows dans le sous-système Windows pour Linux

  5. Comment exécuter 'railscredits:edit' sur Windows 10 sans installer de sous-système Linux

Comment installer WSL2 (sous-système Windows pour Linux 2) sur Windows 10

Comment installer WSL (sous-système Windows pour Linux) sur Windows 11

Comment installer le sous-système Windows pour Linux

Le guide ultime du sous-système Windows pour Linux (Windows WSL)

Construire 0verkill sur le sous-système Windows 10 pour Linux - Jeu de combat à mort d'art 2D ASCII

Comment installer et configurer le sous-système Windows pour Linux