Programing

Linux 용 Windows 하위 시스템에 Oracle JDK 설치

lottogame 2020. 10. 26. 07:36
반응형

Linux 용 Windows 하위 시스템에 Oracle JDK 설치


bash를 지원하는 최신 Windows 10 빌드에서 Oracle JDK의 Linux 버전을 사용하려고 할 때 java바이너리 를 호출하려고 할 때마다 프롬프트가 중단되는 문제가 발생합니다 .

java -version멈춤 처럼 간단한 것을 입력해도 제어를 재개하려면 프로세스를 종료해야합니다.

아무도이 작업을 아직 얻었습니까?


2016 년 12 월 9 일부로 Windows 10 용 Ubuntu Bash에 Java 8을 설치할 수 있으며 @Karl Horton이 정확하다는 점을 명확히하고 싶었습니다.

압축 해제를 설치해야합니다. sudo apt-get install unzip

이 스크립트를 bash for windows 세션의 어딘가에 복사하고 실행 가능하게 만드십시오 (chmod + x filename). vim과 같은 명령 줄 기반 편집기를 사용하지 않는 경우 처리 할 창 줄 끝이 있습니다. 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을 복사 할 수 있도록 라이센스를 부여해야합니다.


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

설치 후

costin@amanta-win:/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)

costin@amanta-win:/mnt/c/work$ which java
/usr/bin/java

costin@amanta-win:/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

뭔가 빠진 게 틀림 없어 ... 내가 한 건 :

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)

@fieldju가 제공 한 스크립트를 사용했지만 그는 스크립트가 의존하는 몇 가지를 놓쳤으며 내용을 복사 / 붙여 넣기하면 /rLinux 반환으로 대체해야하는 Windows 줄 끝 / 캐리지 반환 ( )이 발생합니다. 또한 필요한 zip 파일을 먼저 다운로드하고 스크립트와 함께 배치하는 것이 훨씬 더 간단하다는 것을 알았습니다. 내가 한 일의 전체 목록은 다음과 같습니다.

  1. bash입력 sudo apt-get install zip unzip하십시오 압축 해제를 만들기 위해 / 우편은 당신에 설치되어있는 bash콘솔
  2. oracle 웹 사이트 에서 최신 Linux 버전의 Java JDK를 다운로드하고 (64 비트 시스템이 있으므로 "Linux x64"를 선택했습니다) 컴퓨터의 폴더에 저장합니다. bash참고 : 변경하지 마십시오. 스크립트와 함께 작동하는지 확인하기위한 파일 이름
  3. 마지막 zip과 동일한 폴더에 무제한 강도 정책을 별도로 다운로드하여 파일 이름을 그대로 유지하십시오.
  4. 다음 스크립트를 복사하여 메모장에 붙여넣고 java_install_predownloaded.shzip과 함께 동일한 폴더에 저장합니다 .

스크립트:

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

이 코드는 @fieldju에서 수정 된 버전으로 zip이 이미 다운로드되었으며이 파일과 동일한 폴더에 있다고 가정 .sh합니다.

  1. 파일에 Windows 캐리지 리턴이 있기 때문에 교체되었는지 확인해야하므로 bash저장 한 위치 이동 java_install_predownloaded.sh하여 다음 명령을 실행하십시오.

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

그런 다음 창에 줄 끝이 없는지 확인하기 위해 다음을 실행했습니다.

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

  1. 사람들이 줄을 실행 한 후,라는 파일이 java_install_predownloaded_unix_final.sh그냥 실행해야하므로, 창문 라인 엔딩이없는 우리의 '청소'버전 폴더에있을 것입니다 ./java_install_predownloaded_unix_final.shbash와 마술이 일어날보세요. 안녕하세요 Presto는 이제 Windows의 bash 인스턴스에 Java를 설치했습니다!

Seems installing JDK8 is not working at the moment on Build#14316 of WSL. But trying to install JDK7 worked fine for me. Exploring the limits of this installation at the moment and will keep posted. Idea came from here : https://github.com/Microsoft/BashOnWindows/issues/196


I'm confirming here that Oracle JDK Version 8u102, x64 for linux is installable ok on Windows 10 Insider Build 14905, released on 16th August 2016.

Downloadable from here after accepting license

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

I followed the instructions here: 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

I've not yet had a chance to really stress this install, but this is better than the previous hangs.


The steps I did for a fresh install of Oracle JDK 8 on my Bash (Windows 10):

  1. sudo apt-get install python-software-properties
  2. sudo add-apt-repository ppa:webupd8team/java
  3. sudo apt-get update
  4. sudo apt-get install oracle-java8-installer
  5. Accept licenses

    Image

You're done! Check your java version using java -version and expected output should be something like this:

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)

P.S. At the time of writing this, stable version Oracle 9 JDK has been released, you could probably tweak step 4 above.


Reference: https://poweruphosting.com/blog/install-java-ubuntu/


This worked for me. Though, I don't like adding these weird repositories. Linuxuprising? Would be great if Microsoft would fix that.

sudo add-apt-repository ppa:linuxuprising/java
sudo apt update
sudo apt install oracle-java10-installer

It seems that the problem occured with java oracle version, I have download the openJDK version and now it work


it may work for Insider Preview build 14905, but hangs on Windows 10 Pro build 14393. A good part of the problem is that Microsoft is using Ubuntu 14.0.4. 14.10 or later would probably better support Java 8.

참고URL : https://stackoverflow.com/questions/36478741/installing-oracle-jdk-on-windows-subsystem-for-linux

반응형