लिनक्स के लिए विंडोज सबसिस्टम पर ओरेकल जेडडीके स्थापित करना


84

जब नवीनतम विंडोज 10 पर ओरेकल की जेडडीके के लिनक्स संस्करण का उपयोग करने की कोशिश की जा रही है, तो मैं javaबाइनरी के लिए प्रयास करते समय प्रॉम्प्ट हैंग के साथ समस्या में चल रहा हूं ।

यहां तक ​​कि फांसी के रूप में सरल रूप में कुछ टाइप करना java -versionऔर मुझे नियंत्रण फिर से शुरू करने के लिए प्रक्रिया को समाप्त करना होगा।

किसी को भी यह काम मिल गया अभी तक?


मुझे वास्तव में यकीन नहीं है कि आप क्या करने की कोशिश कर रहे हैं। JDK का एक विंडोज़ संस्करण उपलब्ध है - आप लिनक्स संस्करण का उपयोग क्यों कर रहे हैं? क्या आप हमें बता सकते हैं कि आप क्या कर रहे हैं?
स्टडुनबार

मैं यह भी जानना चाहूंगा कि कार्यालय में हम में से कुछ ने विंडोज 10 पर सफलतापूर्वक इंस्टॉल किया है और हम में से कुछ को हैंग हो गया है।
टी ग्रे

मैंने Oracle JDK की कोशिश नहीं की, लेकिन मैंने Ubuntu के खुद के Openjdk-jre-headless को स्थापित किया और यह ठीक काम करता है। हो सकता है कि Oracle JDK एक सिर पर निर्भर करता है लेकिन बैश केवल CLI है?
स्पीडगू

1
@ रेवोमन github.com/Microsoft/BashOnWindows/issues/49 पर चर्चा की जाँच करें । ऐसा लगता है कि डिफ़ॉल्ट-jdk के साथ समस्या हल हो गई है और आप इसे प्राप्त करने का प्रयास कर सकते हैं। यह भी कि आप उस समस्या का क्या उल्लेख कर रहे हैं / खरीद के बारे में?
सौरभ मिश्रा

1
@ सौरभमिश्रा आप अपने चुने हुए उत्तर को समायोजित कर सकते हैं क्योंकि यह अब संभव है।
फील्डजू

जवाबों:


89

मैं स्पष्ट करना चाहता था कि 9 दिसंबर 2016 तक, आप सबसे निश्चित रूप से विंडोज 8 के लिए उबंटू बैश पर जावा 8 स्थापित कर सकते हैं और यह @ कर्ल हॉर्टन सही है।

आपको अनज़िप इंस्टॉल करना होगा sudo apt-get install unzip

इस स्क्रिप्ट को विंडो सत्र के लिए अपने बैश में कहीं कॉपी करें और इसे निष्पादन योग्य बनाएं (chmod + x filename)। यदि आप vim जैसे कमांड लाइन आधारित एडिटर का उपयोग नहीं करते हैं, तो आपके पास निपटने के लिए विंडोज़ लाइन एंडिंग्स होंगे। आप dos2unix या उस से निपटने के अपने पसंदीदा तरीके का उपयोग कर सकते हैं। मैं सिर्फ विम का उपयोग कर एक फ़ाइल में पेस्ट करता हूं।

 #!/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 की प्रतिलिपि बनाने और आपको जाने के लिए अच्छा होना चाहिए।


5
आपको unzipइस स्क्रिप्ट के लिए आवश्यक जोड़ना चाहिए (क्योंकि यह डिफ़ॉल्ट रूप से स्थापित नहीं है)
नदी का

sudo: unable to resolve host DESKTOP-6PMR0AIएक मित्र कंप्यूटर पर एक अजीब मेजबान समस्या हो रही है ।
samthebest


1
यार, तुम स्वचालन के भगवान हो। :)
पाशा

यह लिपि चट्टानें। आज 10/16/2020 है और अब मेरे विंडोज / उबंटू खोल में jdk8 है।
मैक्सडब्लू

66

यह 2017 में लगता है कि समाधान @ नूह-डेविड द्वारा सुझाए गए अनुसार सरल है।

मैं "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

7
सहमत अब यह सबसे अच्छा तरीका है। Oracle-java8- इंस्टॉलर को पहले webupd8team ppa को जोड़ने की आवश्यकता होती है:sudo add-apt-repository ppa:webupd8team/java
kalatech

रिपॉजिटरी रिटर्न जोड़ने पर "PPA नहीं जोड़ सकते: 'ppa: ~ webupd8team / ubuntu-java'। ERROR: '~ webupd8team' उपयोगकर्ता या टीम मौजूद नहीं है।"
टिम होल्ट

@TimHolt को वही संदेश मिला, जब मैंने टीम का नाम याद किया।
लोइक लैक्मे

हो सकता है कि उपयोगकर्ता हटा दिया गया हो क्योंकि मेरी भी त्रुटि है कि यह मौजूद नहीं है।
ज्यूकिक

11
ओरेकल के लिए धन्यवाद, यह अब किसी भी तरह से काम नहीं करेगा क्योंकि उन्होंने 16 अप्रैल, 2019 से शुरू होने वाले लाइसेंस को बदल दिया - मैं इस पीपीए का उपयोग करने के बजाय ज़ुलु या कोरेट्टो का उपयोग करूंगा - ज़ुलु को स्थापित करने के विवरण के लिए linuxuprising.com/2019/04/… का संदर्भ लें। एसडीके
अग्रज

44

मुझे कुछ याद आ रहा है ... मैंने किया था:

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)

5
इसे इस तरह का होना चाहिए है! सवाल Oracle JDK के लिए पूछता है , हालांकि। आप ओपन JDK स्थापित कर रहे हैं ।
तेदोर

2
यदि आप Oracle JDK चाहते हैं, तो sudo apt-get install oracle-java8-installer
Sterling Bourne

इसके अलावा, यह लिनक्स के लिए विंडोज सबसिस्टम में काम नहीं कर रहा है। या विंडोज के लिए लिनक्स सबसिस्टम, हालांकि इसे कहा जाता है।
सॉरेन

5
मैं सिर्फ sudo apt-get install default-jdkUbuntu 10.04 के साथ विंडोज 10 18.04 पर भागा और इसने OpenJDK 11. स्थापित किया
स्टीफन रोलर

डिफ़ॉल्ट- jdk आजकल 11 पर सेट है, लेकिन क्या होगा अगर किसी को jdk 8 स्थापित करना है?
शिलान

9

मैंने @fieldju द्वारा दी गई स्क्रिप्ट का उपयोग किया, लेकिन उसने कुछ चीजें याद कीं, जो स्क्रिप्ट पर निर्भर करती है, और विंडोज लाइन एंडिंग / कैरिज रिटर्न ( /r) में सामग्री के परिणाम को कॉपी / पेस्ट करना भी होता है, जिसे लिनक्स रिटर्न की जगह की आवश्यकता होगी। इसके अलावा, मुझे पहले से आवश्यक ज़िप को डाउनलोड करने और स्क्रिप्ट के साथ लगाने के लिए यह बहुत अधिक सीधा लगा। यहाँ मैंने क्या किया की एक पूरी सूची है:

  1. में bash, टाइप sudo apt-get install zip unzipयकीन unzip बनाने के लिए / ज़िप अपने पर स्थापित है bashसांत्वना
  2. जावा JDK का नवीनतम लिनक्स संस्करण ओरेकल वेबसाइट से डाउनलोड करें (मेरे पास 64 बिट सिस्टम है इसलिए मैंने "लिनक्स x64" चुना) और इसे अपने कंप्यूटर पर कहीं फ़ोल्डर में सहेजें जिसे आप प्राप्त कर सकते हैंbash नोट : बदल नहीं यह सुनिश्चित करने के लिए फ़ाइल नाम स्क्रिप्ट के साथ काम करता है
  3. असीमित शक्ति नीति डाउनलोड करें को अंतिम ज़िप के रूप में समान फ़ोल्डर में , फिर से सुनिश्चित करें कि आप फ़ाइलनाम को उसी तरह रखें।
  4. निम्न स्क्रिप्ट को नोटपैड में कॉपी और पेस्ट करें और इसे java_install_predownloaded.shज़िप के साथ उसी फ़ोल्डर में सहेजें :

स्क्रिप्ट:

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

यह कोड @field से एक संशोधित संस्करण है जो मानता है कि ज़िप पहले से ही डाउनलोड किए गए हैं और इस .shफ़ाइल के समान फ़ोल्डर में हैं

  1. क्योंकि फ़ाइल में विंडो कैरिज रिटर्न है, जिसे आपको यह सुनिश्चित करने की आवश्यकता है कि उन्हें प्रतिस्थापित किया जाए, इसलिए 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. उन 2 लाइनों चलाने के बाद, एक फ़ाइल कहा जाता है java_install_predownloaded_unix_final.sh, हमारे 'साफ' खिड़कियों लाइन अंत के बिना संस्करण है जो फ़ोल्डर में हो जाएगा, इसलिए आप बस पर अमल करने की जरूरत है ./java_install_predownloaded_unix_final.shमें bashऔर घड़ी के जादू होता है। हे प्रेस्टो अब आप जावा को खिड़कियों पर अपने बैश उदाहरण पर स्थापित किया है!

BTW, यदि आप vim, या अपनी कमांड लाइन पसंद के संपादक का उपयोग करके स्क्रिप्ट बनाते हैं, तो यह विंडोज़ लाइन एंडिंग्स को नहीं जोड़ता है। हालाँकि अगर आपका नोटपैड या कुछ अन्य विंडोज़ आधारित संपादक का उपयोग कर रहे हैं तो अपने सभी सामानों के लिए हाँ। मैं बस फिर से स्थापित खिड़कियों और अपने देव env वापस पाने के लिए अपने स्वयं के पद के लिए संदर्भ था। :)
फ़ील्डू

6

मैंने अपने बैश (विंडोज 10) पर Oracle JDK 8 की एक नई स्थापना के लिए जो कदम उठाए:

  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. लाइसेंस स्वीकार करें

    छवि

हो गया! अपने जावा संस्करण का उपयोग करके जांचें 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 को ट्वीक कर सकते हैं।


संदर्भ: https://poweruphosting.com/blog/install-java-ubuntu/


5

JDK8 को स्थापित करने से डब्ल्यूएसएल के बिल्ड # 14316 पर फिलहाल काम नहीं हो रहा है। लेकिन JDK7 को स्थापित करने की कोशिश ने मेरे लिए ठीक काम किया। फिलहाल इस इंस्टॉलेशन की सीमा को समझा जाएगा और पोस्ट करता रहेगा। आइडिया यहां से आया: https://github.com/Microsoft/BashOnWindows/issues/196


1
मेरी शर्त यह है कि इसका नए जावाएफ़एक्स यूआई सामान (जावा 8 में डिफ़ॉल्ट रनटाइम में) के साथ कुछ करना है। Java 7 भी JavaFX का समर्थन करता है, लेकिन जार डिफ़ॉल्ट रूप से लोड नहीं होता है।
१११०११०१ बी

उसी स्थिति का सामना कर रहे लोगों के लिए एक स्टेटस अपडेट के रूप में, यह विंडोज अपडेट द्वारा हल किया गया लगता है। मैं बिना मुद्दे के oracle-jdk8 नहीं चला सकता।
जॉन जोन्स

5

मैं यहाँ पुष्टि कर रहा हूँ कि Oracle JDK संस्करण 8u102, लिनक्स के लिए x64 विंडोज 10 इनसाइडर बिल्ड 14905 पर इंस्टॉल करने योग्य ठीक है, 16 अगस्त 2016 को जारी किया गया।

लाइसेंस स्वीकार करने के बाद यहां से डाउनलोड करने योग्य

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

मुझे अभी तक इस इंस्टॉल को वास्तव में तनाव देने का मौका नहीं मिला है, लेकिन यह पिछले हैंग से बेहतर है।


अपने स्थापना निर्देशों की कोशिश नहीं की है, लेकिन इसे webupd8team / java ppa से स्थापित करने से यह काम नहीं करता है।
cheolho minale

2

इसने मेरे लिए काम किया। हालांकि, मुझे इन अजीब रिपोजिटरी को जोड़ना पसंद नहीं है। Linuxuprising? बहुत अच्छा होगा यदि Microsoft इसे ठीक करेगा।

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

2

लिनक्स JDK को स्थापित करने के लिए बहुत सारे उत्तर सुझा रहे हैं, भले ही उनके पास एक अच्छा विंडोज JDK हो। डब्लूएसएल की सुंदरता आपको इस तरह से काम करने से रोक रही है, क्योंकि फाइल सिस्टम इंटरऑपरेबल हैं। जब तक आप फ़ाइल एक्सटेंशन को ध्यान में रखते हैं (नीचे उल्लिखित), आपको केवल आला स्थितियों के लिए दोनों को स्थापित करना होगा।

सीधी विधि

आप अपनी .bashrcफ़ाइल में कोड की निम्न पंक्ति जोड़कर इसे बहुत सरलता से कर सकते हैं , यह मानते हुए कि आपके Windows पर्यावरण चर सही तरीके से सेट किए गए हैं और WSL स्थापित है:

# Shared environment variables
export JAVA_HOME=/mnt/d/Java/jdk11.0.4_10

बस सुनिश्चित करें कि आप अपने JDK फ़ोल्डर को इंगित करने के लिए निर्देशिका को बदलते हैं। मेरे मामले में, यह D:\Java\jdk11.0.4_10डब्ल्यूएसएल में है/mnt/d/Java/jdk11.0.4_10

इसके अलावा, जब से आप विंडोज बायनेरिज़ का उपयोग कर रहे हैं, तो आपको डब्ल्यूएसएल बैश शेल से चलने पर फ़ाइल प्रकार निर्दिष्ट करना होगा:

उदाहरण

से विंडोज JDK कॉलिंग :

CMD:

javac MyClass.java
java MyClass

WSL:

javac.exe MyClass.java
java.exe MyClass

नोट WSL की आवश्यकता है .exeक्योंकि यह एक विंडोज बाइनरी है। OpenJDK के लिनक्स डिस्ट्रो का उपयोग करते समय, किसी एक्सटेंशन की आवश्यकता नहीं होती है।


1

मुझे भी यही समस्या थी लेकिन मैं इसे एक कमांड से हल करता हूं:

sudo apt upgrade

फिर इन 3 आदेशों को चलाएं:

sudo apt install default-jre
sudo apt install openjdk-11-jre-headless
sudo apt install openjdk-8-jre-headless

0

ऐसा लगता है कि java oracle संस्करण के साथ समस्या उत्पन्न हो गई है, मैंने OpenJDK संस्करण डाउनलोड किया है और अब यह काम करता है


हम वास्तव में जावा, जावा 7 काम के संस्करण से आते हैं, लेकिन जावा 8 नहीं था।
जुलिएन रिचर्ड

0

यह इनसाइडर प्रिव्यू बिल्ड 14905 के लिए काम कर सकता है, लेकिन विंडोज 10 प्रो बिल्ड 14393 पर लटका हुआ है। समस्या का एक अच्छा हिस्सा यह है कि माइक्रोसॉफ्ट उबंटू 14.0.4 का उपयोग कर रहा है। 14.10 या बाद में शायद जावा 8 का बेहतर समर्थन करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.