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:
- In
bash
, digitasudo apt-get install zip unzip
per assicurarti che unzip/zip sia installato sul tuobash
consola - 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 - 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'è.
- 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
-
poiché il file ha i ritorni a capo di Windows, devi assicurarti che vengano sostituiti, quindi in
bash
vai al punto in cui hai salvatojava_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
- 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
inbash
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)