bash をサポートする最新の Windows 10 ビルドで Oracle の JDK の Linux バージョンを使用しようとすると、java
バイナリを呼び出そうとするたびにプロンプトがハングするという問題が発生します。
ハングするような単純なものでも入java -version
力すると、プロセスを終了して制御を再開する必要があります。
誰もこれを機能させましたか?
bash をサポートする最新の Windows 10 ビルドで Oracle の JDK の Linux バージョンを使用しようとすると、java
バイナリを呼び出そうとするたびにプロンプトがハングするという問題が発生します。
ハングするような単純なものでも入java -version
力すると、プロセスを終了して制御を再開する必要があります。
誰もこれを機能させましたか?
2016 年 12 月 9 日の時点で、Windows 10 の Ubuntu Bash に Java 8 を確実にインストールできること、および @Karl Horton が正しいことを明確にしたいと思います。
unzipをインストールする必要があります sudo apt-get install unzip
このスクリプトを bash for Windows セッションのどこかにコピーして、実行可能にします (chmod +x ファイル名)。vim などのコマンド ライン ベースのエディタを使用しない場合は、Windows の行末に対処する必要があります。dos2unix またはそれに対処するお好みの方法を使用できます。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
そして今、私は次のことができます
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)
上記のスクリプトのリンクとバージョンは、これを読むときには古くなっている可能性が高いため、http: //www.oracle.com/technetwork/java/javase/downloads/index.html にアクセスしてライセンスを取得して、js で新しい URL をコピーできるようにします。
Bash(Windows 10)にOracle JDK 8を新規インストールするために行った手順:
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
ライセンスを受け入れる
あなたは終わった!を使用して Java のバージョンを確認するjava -version
と、予想される出力は次のようになります。
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)
PS これを書いている時点で、安定したバージョンの Oracle 9 JDK がリリースされています。おそらく、上記のステップ 4 を微調整できます。
現在、WSL の Build#14316 で JDK8 のインストールが機能していないようです。しかし、JDK7をインストールしようとするとうまくいきました。現時点でこのインストールの限界を調査しており、投稿し続けます。アイデアはここから来ました: https://github.com/Microsoft/BashOnWindows/issues/196
ここで、2016 年 8 月 16 日にリリースされた Windows 10 Insider Build 14905 に、Linux 用の Oracle JDK バージョン 8u102、x64 が問題なくインストールできることを確認しています。
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
ここの指示に従いました: 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
私はまだこのインストールを実際に強調する機会がありませんでしたが、これは以前のハングよりはましです。
これは私にとってはうまくいきました。ただし、これらの奇妙なリポジトリを追加するのは好きではありません。Linuxの蜂起?マイクロソフトがそれを修正してくれたら最高です。
sudo add-apt-repository ppa:linuxuprising/java
sudo apt update
sudo apt install oracle-java10-installer
Insider Preview ビルド 14905 では機能する可能性がありますが、Windows 10 Pro ビルド 14393 ではハングします。問題のかなりの部分は、Microsoft が Ubuntu 14.0.4 を使用していることです。14.10 以降は、おそらく Java 8 をより適切にサポートするでしょう。