Zdá se, že v srpnu 2017 je řešení jednodušší, jak navrhuje @noah-david.
Podařilo se mi nainstalovat Oracle JDK 8 z týmového úložiště „WebUpd8“.
Instrukce. Chcete-li přidat úložiště:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Instalace:
sudo apt-get install oracle-java8-installer
sudo apt install oracle-java8-set-default
Po instalaci
[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
Chtěl jsem objasnit, že od 9. prosince 2016 si zcela jistě můžete nainstalovat Java 8 na Ubuntu Bash pro Windows 10 a že @Karl Horton má pravdu.
Budete muset nainstalovat rozbalení sudo apt-get install unzip
Zkopírujte tento skript někam do bash pro relaci Windows a udělejte jej spustitelný (chmod +x název souboru). Pokud nepoužíváte editor založený na příkazovém řádku, jako je vim, budete se muset vypořádat s koncovkami řádků systému Windows. můžete použít dos2unix nebo svůj preferovaný způsob řešení. Prostě to vložím do souboru pomocí 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
A teď mohu udělat následující
[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)
Odkazy a verze ve výše uvedeném skriptu budou pravděpodobně v době, kdy si to přečtete, zastaralé, takže přejděte na http://www.oracle.com/technetwork/java/javase/downloads/index.html a přijměte licence, takže jejich js vám umožní zkopírovat nové adresy URL a měli byste být připraveni.
Použil jsem skript od @fieldju, ale vynechal některé věci, na kterých skript závisí, a také kopírování/vkládání obsahu vede k tomu, že se v systému Windows vrací konce řádků/carriage (/r
), které bude nutné nahradit na linux returns. Také mi přišlo mnohem jednodušší stáhnout nejprve potřebné zipy a dát je vedle skriptu. Zde je úplný seznam toho, co jsem udělal:
- V
bash
, zadejtesudo apt-get install zip unzip
abyste se ujistili, že unzip/zip je nainstalován na vašembash
konzole - Stáhněte si nejnovější verzi Java JDK pro Linux z webu oracle (mám 64bitový systém, takže jsem zvolil "Linux x64") a uložte si ji do složky někde v počítači, do které se dostanete v
bash
POZNÁMKA:Neměňte název souboru, abyste zajistili, že bude se skriptem pracovat - Stáhněte si zásadu neomezené síly samostatně do stejné složky jako poslední zip, čímž opět zajistíte, že název souboru zůstane tak, jak je.
- Zkopírujte a vložte následující skript do poznámkového bloku a uložte jej jako
java_install_predownloaded.sh
ve stejné složce vedle zipů:
Scé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
Tento kód je upravená verze od @fieldju, která předpokládá, že zipy jsou již staženy a jsou ve stejné složce jako tento .sh
soubor
-
protože soubor má návrat vozíku systému Windows, musíte zajistit, aby byly nahrazeny, takže v
bash
přejděte na místo, kam jste uložilijava_install_predownloaded.sh
a spusťte následující příkaz:sed 's/^M$//' java_install_predownloaded.sh > java_install_predownloaded_unix.sh
Také jsem pak spustil následující, abych se ujistil, že v oknech rozhodně nejsou žádné konce řádků:
sed 's/\r$//' java_install_predownloaded_unix.sh > java_install_predownloaded_unix_final.sh
- Po spuštění těchto 2 řádků se vytvoří soubor s názvem
java_install_predownloaded_unix_final.sh
bude ve složce, která je naší „vyčištěnou“ verzí bez koncovek řádků Windows, takže stačí spustit./java_install_predownloaded_unix_final.sh
vbash
a sledujte, jak se kouzlo děje. Ahoj Presto, nyní máte na instanci bash na Windows nainstalovanou javu!
Něco mi asi chybí... všechno, co jsem udělal, bylo:
sudo apt-get update
sudo apt-get install default-jdk
java -version
výstup:
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)