GNU/Linux >> Linux Esercitazione >  >> Linux

Installazione di Oracle JDK su sottosistema Windows per Linux

Sembra che nell'agosto 2017 la soluzione sia più semplice come suggerito da @noah-david.

Sono stato in grado di installare Oracle JDK 8 dal repository del team "WebUpd8".

Istruzioni. Per aggiungere il repository:

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

Per installare:

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

Dopo l'installazione

[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

Volevo chiarire che a partire dal 9 dicembre 2016, puoi sicuramente installare Java 8 su Ubuntu Bash per Windows 10 e che @Karl Horton ha ragione.

Dovrai installare unzip sudo apt-get install unzip

Copia questo script da qualche parte nella tua bash per la sessione di Windows e rendilo eseguibile (chmod +x nome file). Se non usi un editor basato sulla riga di comando come vim, avrai a che fare con i finali di riga di Windows. puoi usare dos2unix o il tuo modo preferito di gestirlo. Lo incollo semplicemente in un file usando 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

E ora posso fare quanto segue

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

È probabile che i collegamenti e le versioni nello script sopra non siano aggiornati quando leggerai questo, quindi vai su http://www.oracle.com/technetwork/java/javase/downloads/index.html accetta il licenza in modo che il loro js ti consenta di copiare i nuovi URL e dovresti essere a posto.


Ho usato lo script fornito da @fieldju ma ha perso alcune cose da cui dipende lo script, e anche copiando/incollando il contenuto si ottengono terminazioni di riga di Windows/ritorni a capo (/r ) che dovrà essere sostituito in linux return. Inoltre, ho trovato molto più semplice scaricare prima gli zip necessari e metterli insieme allo script. Ecco un elenco completo di quello che ho fatto:

  1. In bash , digita sudo apt-get install zip unzip per assicurarti che unzip/zip sia installato sul tuo bash consola
  2. Scarica l'ultima versione Linux di Java JDK dal sito web di Oracle (ho un sistema a 64 bit, quindi ho scelto "Linux x64") e salvala in una cartella da qualche parte sul tuo computer a cui puoi accedere in bash NOTA:non modificare il nome del file per assicurarsi che funzioni con lo script
  3. Scarica la politica di forza illimitata separatamente nella stessa cartella dell'ultimo zip, assicurandoti ancora una volta di mantenere il nome del file così com'è.
  4. Copia e incolla il seguente script nel blocco note e salvalo come java_install_predownloaded.sh nella stessa cartella accanto alle cerniere:

Sceneggiatura:

#!/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

Questo codice è una versione modificata di @fieldju che presuppone che gli zip siano già stati scaricati e si trovino nella stessa cartella di questo .sh file

  1. poiché il file ha i ritorni a capo di Windows, devi assicurarti che vengano sostituiti, quindi in bash vai al punto in cui hai salvato java_install_predownloaded.sh ed esegui il seguente comando:

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

Ho anche quindi eseguito quanto segue per assicurarmi che non ci siano assolutamente terminazioni di riga da Windows:

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

  1. Dopo aver eseguito queste 2 righe, un file chiamato java_install_predownloaded_unix_final.sh sarà nella cartella che è la nostra versione 'ripulita' senza le terminazioni di riga di Windows, quindi devi solo eseguire ./java_install_predownloaded_unix_final.sh in bash e guarda la magia accadere. Ehi Presto, ora hai installato java sulla tua istanza bash su Windows!

Devo essermi perso qualcosa... tutto quello che ho fatto è stato:

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

java -version

uscita:

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. Spiegazione del sottosistema Windows per Linux, WSL e WSL2

  2. Come installare Oracle Java JDK 11/8 su Ubuntu 16.04 e Linux Mint 18

  3. Come installare Oracle Java JDK 17 su Linux

  4. Come installare Oracle Java JDK 18 in Ubuntu 20.04 | Ubuntu 22.04

  5. 10 MOTIVI PER CAMBIARE WINDOWS 11 IN LINUX GRATIS

Come installare WSL2 (sottosistema Windows per Linux 2) su Windows 10

Come installare WSL (sottosistema Windows per Linux) su Windows 11

Come installare il sottosistema Windows per Linux

La guida definitiva al sottosistema Windows per Linux (Windows WSL)

Costruire 0verkill sul sottosistema Windows 10 per Linux - Gioco deathmatch artistico 2D ASCII

Come installare e configurare il sottosistema Windows per Linux