GNU/Linux >> Tutoriales Linux >  >> Linux

Instalación de Oracle JDK en el subsistema de Windows para Linux

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:

  1. En bash , escribe sudo apt-get install zip unzip para asegurarse de que descomprimir/comprimir esté instalado en su bash consola
  2. 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
  3. 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á.
  4. 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

  1. 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 guardaste java_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

  1. 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 en bash 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)

Linux
  1. Explicación del subsistema de Windows para Linux, WSL y WSL2

  2. Instalación y configuración de Grafana en Linux

  3. 10 RAZONES PARA CAMBIAR WINDOWS 11 A LINUX GRATIS

  4. Kali en el subsistema de Windows para Linux

  5. Cómo ejecutar 'credenciales de rieles:editar' en Windows 10 sin instalar un subsistema Linux

Cómo instalar WSL2 (Subsistema de Windows para Linux 2) en Windows 10

Cómo instalar WSL (Subsistema de Windows para Linux) en Windows 11

Cómo instalar el subsistema de Windows para Linux

La guía definitiva del subsistema de Windows para Linux (Windows WSL)

Construyendo 0verkill en el subsistema de Windows 10 para Linux:juego de combate a muerte con arte ASCII en 2D

Cómo instalar y configurar el subsistema de Windows para Linux