GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Installieren von Oracle JDK auf einem Windows-Subsystem für Linux

Es scheint, dass die Lösung im August 2017 einfacher ist, als von @noah-david vorgeschlagen.

Ich konnte Oracle JDK 8 aus dem Team-Repository „WebUpd8“ installieren.

Anweisungen. So fügen Sie das Repository hinzu:

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

Zum Installieren:

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

Nach der Installation

[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

Ich wollte klarstellen, dass Sie ab dem 9. Dezember 2016 mit Sicherheit Java 8 auf Ubuntu Bash für Windows 10 installieren können und dass @Karl Horton Recht hat.

Sie müssen unzip installieren sudo apt-get install unzip

Kopieren Sie dieses Skript irgendwo in Ihre Bash für Windows-Sitzung und machen Sie es ausführbar (chmod +x Dateiname). Wenn Sie keinen befehlszeilenbasierten Editor wie vim verwenden, müssen Sie sich mit Windows-Zeilenenden befassen. Sie können dos2unix oder Ihre bevorzugte Art verwenden, damit umzugehen. Ich füge es einfach mit vim in eine Datei ein.

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

Und jetzt kann ich Folgendes tun

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

Die Links und Versionen im obigen Skript sind wahrscheinlich veraltet, wenn Sie dies lesen, also gehen Sie einfach zu http://www.oracle.com/technetwork/java/javase/downloads/index.html und akzeptieren Sie die Lizenz, damit ihr js es Ihnen ermöglicht, die neuen URLs zu kopieren, und Sie sollten bereit sein.


Ich habe das Skript von @fieldju verwendet, aber er hat einige Dinge übersehen, von denen das Skript abhängt, und auch das Kopieren/Einfügen des Inhalts führt zu Windows-Zeilenenden/Wagenrückläufen (/r ), die in Linux-Returns ersetzt werden müssen. Außerdem fand ich es viel einfacher, die benötigten Reißverschlüsse zuerst herunterzuladen und sie neben das Skript zu legen. Hier ist eine vollständige Liste dessen, was ich getan habe:

  1. In bash , geben Sie sudo apt-get install zip unzip ein um sicherzustellen, dass unzip/zip auf Ihrem bash installiert ist Konsole
  2. Laden Sie die neueste Linux-Version des Java JDK von der Oracle-Website herunter (ich habe ein 64-Bit-System, also habe ich „Linux x64“ gewählt) und speichern Sie es in einem Ordner irgendwo auf Ihrem Computer, auf den Sie unter bash HINWEIS:Ändern Sie den Dateinamen nicht, um sicherzustellen, dass er mit dem Skript funktioniert
  3. Laden Sie die Richtlinie für unbegrenzte Stärke separat in denselben Ordner wie die letzte ZIP-Datei herunter, und stellen Sie erneut sicher, dass Sie den Dateinamen unverändert lassen.
  4. Kopieren Sie das folgende Skript, fügen Sie es in Notepad ein und speichern Sie es unter java_install_predownloaded.sh im selben Ordner neben den Zips:

Skript:

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

Dieser Code ist eine modifizierte Version von @fieldju, die davon ausgeht, dass die ZIP-Dateien bereits heruntergeladen wurden und sich im selben Ordner wie dieser .sh befinden Datei

  1. Da die Datei die Windows-Wagenrückläufe enthält, müssen Sie sicherstellen, dass sie ersetzt werden, also in bash Navigieren Sie zu dem Ort, an dem Sie java_install_predownloaded.sh gespeichert haben und führen Sie den folgenden Befehl aus:

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

Ich habe dann auch Folgendes ausgeführt, um sicherzustellen, dass es definitiv keine Zeilenenden von Windows gibt:

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

  1. Nachdem diese 2 Zeilen ausgeführt wurden, wird eine Datei namens java_install_predownloaded_unix_final.sh wird in dem Ordner sein, der unsere 'bereinigte' Version ohne die Windows-Zeilenenden ist, also müssen Sie nur ./java_install_predownloaded_unix_final.sh ausführen in bash und beobachten Sie, wie die Magie geschieht. Hey Presto, du hast jetzt Java auf deiner Bash-Instanz unter Windows installiert!

Irgendetwas muss mir entgangen sein... alles, was ich getan habe, war:

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

java -version

Ausgabe:

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. Windows-Subsystem für Linux erklärt, WSL &WSL2

  2. Installieren und Einrichten von Grafana unter Linux

  3. Kali auf dem Windows-Subsystem für Linux

  4. Mounten einer Windows-Freigabe im Windows-Subsystem für Linux

  5. So führen Sie „rails Credentials:edit“ unter Windows 10 aus, ohne ein Linux-Subsystem zu installieren

So installieren Sie WSL2 (Windows-Subsystem für Linux 2) unter Windows 10

So installieren Sie WSL (Windows-Subsystem für Linux) unter Windows 11

So installieren Sie das Windows-Subsystem für Linux

Der ultimative Leitfaden zum Windows-Subsystem für Linux (Windows WSL)

Aufbau von 0verkill auf Windows 10 Subsystem für Linux – 2D-ASCII-Art-Deathmatch-Spiel

So installieren und konfigurieren Sie das Windows-Subsystem für Linux