java - technetwork - Instalación de Oracle JDK en el subsistema de Windows para Linux
oracle java (10)
Confirmo aquí que Oracle JDK Versión 8u102, x64 para Linux es instalable correctamente en Windows 10 Insider Build 14905, lanzado el 16 de agosto de 2016.
Descargable desde aquí después de aceptar la licencia
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
Seguí las instrucciones aquí: wikiHow Oracle Java Install
$ 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
Todavía no he tenido la oportunidad de enfatizar realmente esta instalación, pero esto es mejor que los bloqueos anteriores.
Cuando intento usar la versión de Linux del JDK de Oracle en la última versión de Windows 10 que tiene soporte para bash, me encuentro con un problema con el aviso que se cuelga cada vez que intento invocar el binario de
java
.
Escribiendo incluso algo tan simple como
java -version
bloquea y tengo que terminar el proceso para reanudar el control.
¿Alguien tiene esto funcionando todavía?
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)
Esto funcionó para mí. Sin embargo, no me gusta agregar estos repositorios extraños. Linuxuprising? Sería genial si Microsoft solucionara eso.
sudo add-apt-repository ppa:linuxuprising/java
sudo apt update
sudo apt install oracle-java10-installer
Los pasos que hice para una nueva instalación de Oracle JDK 8 en mi Bash (Windows 10):
-
sudo apt-get install python-software-properties
-
sudo add-apt-repository ppa:webupd8team/java
-
sudo apt-get update
-
sudo apt-get install oracle-java8-installer
-
Aceptar licencias
Ya terminaste!
Verifique su versión de java usando
java -version
y la salida esperada debería ser algo como esto:
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)
PD: al momento de escribir esto, se ha lanzado la versión estable Oracle 9 JDK, probablemente podría modificar el paso 4 anterior.
Referencia: https://poweruphosting.com/blog/install-java-ubuntu/
Parece que el problema ocurrió con la versión java oracle, he descargado la versión openJDK y ahora funciona
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" .
Instructions . Para agregar el repositorio:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Instalar:
sudo apt-get install oracle-java8-installer
sudo apt install oracle-java8-set-default
Después de instalar
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
Parece que la instalación de JDK8 no funciona en este momento en Build # 14316 de WSL. Pero tratar de instalar JDK7 funcionó bien para mí. Explorando los límites de esta instalación en este momento y lo mantendremos informado. La idea surgió de aquí: https://github.com/Microsoft/BashOnWindows/issues/196
Quería aclarar que a partir del 9 de diciembre de 2016, ciertamente puede instalar Java 8 en Ubuntu Bash para Windows 10 y que @Karl Horton es correcto.
Necesitará instalar descomprimir
sudo apt-get install unzip
Copie este script en algún lugar de su sesión de bash para Windows y hágalo ejecutable (chmod + x filename). Si no utiliza un editor basado en línea de comandos como vim, tendrá que lidiar con los finales de línea de Windows. puedes usar dos2unix o tu 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
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)
Es probable que los enlaces y las versiones en el script anterior estén desactualizados para cuando lea esto, así que solo 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.
Usé la secuencia de comandos proporcionada por @fieldju pero se perdió algunas cosas de las que depende la secuencia de comandos, y también copió / pegó los resultados de contenido para tener terminaciones de línea de Windows / retornos de carro (
/r
) que deberán reemplazarse para los retornos de Linux.
Además, encontré que era mucho más sencillo descargar primero las cremalleras necesarias y ponerlas junto al script.
Aquí hay una lista completa de lo que hice:
-
En
bash
, escribasudo apt-get install zip unzip
para asegurarse de que unzip / zip esté instalado en su consolabash
-
Descargue la última versión de Linux del Java JDK del
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 al que pueda acceder en
bash
NOTA: no cambie el nombre del archivo para asegurarse de que funciona con el script - Descargue la política de fortaleza ilimitada por separado en la misma carpeta que el último zip, nuevamente asegurándose de mantener el nombre de archivo tal 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 a las cremalleras:
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 las cremalleras ya están descargadas y en la misma carpeta que este archivo
.sh
-
debido a que el archivo tiene los retornos del carro de Windows, debe asegurarse de que sean reemplazados, así que en
bash
navegue hasta donde guardójava_install_predownloaded.sh
y ejecute 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 hay 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 ver cómo sucede la magia. ¡Hola Presto, ahora tienes Java instalado en tu instancia de bash en Windows!
puede funcionar para Insider Preview build 14905, pero se bloquea en Windows 10 Pro build 14393. Una buena parte del problema es que Microsoft está usando Ubuntu 14.0.4. 14.10 o posterior probablemente admitiría mejor Java 8.