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:
- In
bash
, geben Siesudo apt-get install zip unzip
ein um sicherzustellen, dass unzip/zip auf Ihrembash
installiert ist Konsole - 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 - 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.
- 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
-
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 Siejava_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
- 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 inbash
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)