Parece que en agosto de 2017 la solución es más simple como lo sugiere @noah-david.
Pude instalar Oracle JDK 8 desde el repositorio del equipo "WebUpd8".
Instrucciones. Para agregar el repositorio:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Para instalar:
sudo apt-get install oracle-java8-installer
sudo apt install oracle-java8-set-default
Después de instalar
[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
Quería aclarar que, a partir del 9 de diciembre de 2016, puede instalar Java 8 en Ubuntu Bash para Windows 10 y que @Karl Horton es correcto.
Tendrás que instalar descomprimir sudo apt-get install unzip
Copie este script en algún lugar de su bash para la sesión de Windows y hágalo ejecutable (chmod +x nombre de archivo). Si no utiliza un editor basado en línea de comandos como vim, tendrá que lidiar con los finales de línea de Windows. puede usar dos2unix o su forma preferida de lidiar con eso. Solo lo pego en un archivo 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
Y ahora puedo hacer lo siguiente
[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)
Es probable que los enlaces y las versiones en el script anterior estén desactualizados cuando lea esto, así que diríjase a http://www.oracle.com/technetwork/java/javase/downloads/index.html acepte el licencia para que su js le permita copiar las nuevas URL y debería estar listo para comenzar.
Utilicé el guión proporcionado por @fieldju pero se perdió algunas cosas de las que depende el guión, y también copiar/pegar los contenidos da como resultado finales de línea de Windows/retornos de carro (/r
) que será necesario reemplazar a las devoluciones de Linux. Además, me resultó mucho más sencillo descargar primero los archivos comprimidos necesarios y ponerlos junto con el script. Aquí hay una lista completa de lo que hice:
- En
bash
, escribesudo apt-get install zip unzip
para asegurarse de que descomprimir/comprimir esté instalado en subash
consola - Descargue la última versión de Linux de Java JDK desde el sitio web de Oracle (tengo un sistema de 64 bits, así que elegí "Linux x64") y guárdelo en una carpeta en algún lugar de su computadora a la que pueda acceder en
bash
NOTA:no cambie el nombre del archivo para asegurarse de que funcione con el script - Descargue la política de potencia ilimitada por separado en la misma carpeta que el último zip, asegurándose nuevamente de mantener el nombre del archivo como está.
- Copie y pegue el siguiente script en el bloc de notas y guárdelo como
java_install_predownloaded.sh
en la misma carpeta junto con los zips:
Guión:
#!/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
Este código es una versión modificada de @fieldju que asume que los zips ya están descargados y en la misma carpeta que este .sh
archivo
-
debido a que el archivo tiene los retornos de carro de Windows, debe asegurarse de que se reemplacen, por lo que en
bash
navega hasta donde guardastejava_install_predownloaded.sh
y ejecuta el siguiente comando:sed 's/^M$//' java_install_predownloaded.sh > java_install_predownloaded_unix.sh
También ejecuté lo siguiente para asegurarme de que definitivamente no haya finales de línea desde Windows:
sed 's/\r$//' java_install_predownloaded_unix.sh > java_install_predownloaded_unix_final.sh
- Después de ejecutar esas 2 líneas, un archivo llamado
java_install_predownloaded_unix_final.sh
estará en la carpeta que es nuestra versión 'limpia' sin los finales de línea de Windows, por lo que solo necesita ejecutar./java_install_predownloaded_unix_final.sh
enbash
y mira cómo sucede la magia. ¡Hola Presto, ahora tiene Java instalado en su instancia de bash en Windows!
Debo estar perdiendo algo... todo lo que hice fue:
sudo apt-get update
sudo apt-get install default-jdk
java -version
salida:
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)