1. ホーム
  2. java

[解決済み] WindowsサブシステムへのOracle JDKのインストール for Linux

2023-05-03 01:15:17

質問

bash のサポートがある最新の Windows 10 ビルドで Oracle の JDK の Linux バージョンを使用しようとしたとき、プロンプトがハングするという問題に遭遇しました。 java バイナリを呼び出そうとすると、プロンプトがハングするという問題が発生しました。

のような単純なものでも入力すると java -version を入力するとハングアップしてしまい、制御を再開するにはプロセスを終了させる必要があります。

誰かこれが動作するようになった人はいますか?

どのように解決するのですか?

2016 年 12 月 9 日時点で、最も確実に Ubuntu Bash for Windows 10 に Java 8 をインストールでき、@Karl Horton が正しいことを明らかにしたいと思います。

unzip をインストールする必要があります。 sudo apt-get install unzip

このスクリプトをbash for windowsセッションのどこかにコピーし、実行可能な状態にします(chmod +x ファイル名)。vimのようなコマンドラインベースのエディタを使用しない場合は、Windowsの行末を処理する必要があります。私は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 をコピーできるようにライセンスを承認すれば、問題なく使用できるはずです。