GNU/Linux >> Linux の 問題 >  >> Linux

Linux の Windows サブシステムへの Oracle JDK のインストール

2017 年 8 月には、@noah-david によって提案されたように、ソリューションはよりシンプルになっているようです。

「WebUpd8」チーム リポジトリから Oracle JDK 8 をインストールできました。

指示。リポジトリを追加するには:

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

インストールするには:

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

インストール後

[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

2016 年 12 月 9 日の時点で、Windows 10 の Ubuntu Bash に Java 8 をインストールできること、および @Karl Horton が正しいことを明確にしたいと思います。

解凍をインストールする必要があります 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

そして今、私は次のことを行うことができます

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

上記のスクリプトのリンクとバージョンは、これを読むときには古くなっている可能性が高いため、http://www.oracle.com/technetwork/java/javase/downloads/index.html にアクセスしてライセンスを取得して、js で新しい URL をコピーできるようにします。


@fieldju から提供されたスクリプトを使用しましたが、彼はスクリプトが依存するいくつかのことを見逃しており、内容をコピー/貼り付けすると、Windows の行末/キャリッジ リターン (/r) が発生します。 ) Linux リターンに置き換える必要があります。また、最初に必要な zip をダウンロードして、スクリプトと一緒に配置する方がはるかに簡単であることがわかりました。私が行ったことの完全なリストは次のとおりです:

<オール>
  • bash で 、 sudo apt-get install zip unzip と入力します unzip/zip が bash にインストールされていることを確認します コンソール
  • Java JDK の最新の Linux バージョンをオラクルの Web サイトからダウンロードし (私は 64 ビット システムを使用しているため、"Linux x64" を選択しました)、bash 注:スクリプトで確実に機能するようにファイル名を変更しないでください
  • 無制限強度ポリシーを最後の zip と同じフォルダーに個別にダウンロードし、ファイル名をそのまま維持します。
  • 次のスクリプトをコピーしてメモ帳に貼り付け、java_install_predownloaded.sh として保存します。 zip と同じフォルダー内:
  • スクリプト:

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

    このコードは、zip が既にダウンロードされており、この .sh と同じフォルダーにあると仮定した @fieldju の修正バージョンです。 ファイル

    1. ファイルには Windows のキャリッジ リターンが含まれているため、確実に置換する必要があります。bash では java_install_predownloaded.sh を保存した場所に移動します 次のコマンドを実行します:

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

    また、次のコマンドを実行して、Windows からの行末が確実にないようにしました:

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

    1. これらの 2 行を実行すると、java_install_predownloaded_unix_final.sh というファイルが作成されます。 Windows の行末のない「クリーン」バージョンのフォルダーにあるため、./java_install_predownloaded_unix_final.sh を実行するだけです。 bash で そして魔法が起こるのを見てください。 Windows の bash インスタンスに Java がインストールされました!

    私は何かが欠けているに違いない...私がしたことは:

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

    出力:

    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. LinuxでのGrafanaのインストールとセットアップ

    2. Linux サブシステムをインストールせずに Windows 10 で「rails credentials:edit」を実行する方法

    3. Wget エラー bash Linux 用 Windows サブシステム

    1. Linux用のWindowsサブシステムの説明、WSLおよびWSL2

    2. Ubuntu16.04およびLinuxMint18にOracleJavaJDK11/8をインストールする方法

    3. LinuxにOracleJavaJDK17をインストールする方法

    1. Ubuntu20.04にOracleJavaJDK18をインストールする方法| Ubuntu 22.04

    2. WINDOWS11を無料でLinuxに変更する10の理由

    3. Linux 用 Windows サブシステムの Kali