Ubuntu: OpenJDK 8 - पैकेज का पता लगाने में असमर्थ


102

इसलिए मैंने अभी उबंटू को स्थापित किया है, और यह मेरा पहली बार लिनक्स वातावरण में काम कर रहा है, इसलिए यहां मेरी नीरसता के साथ सहन करें।

वैसे भी, मैंने Java 8 JDK को Oracle से सीधे डाउनलोड किया है, लेकिन मैं समझता हूँ कि Java 8 के लिए भी एक OpenJDK है। मेरे दो सवाल हैं।

  1. Oracle संस्करण और OpenJDK के बीच क्या अंतर है। फायदे नुकसान?

  2. जब मैं कोशिश करता हूं और OpenJDK 8 प्राप्त करता हूं, तो मैं नहीं कर सकता। मैं टर्मिनल कमांड और त्रुटि संदेश पा रहा हूं, जो मुझे सलाह के लिए यहां मिल रहा है। फिर से, लिनक्स के लिए बहुत नया, इस बिंदु पर यहाँ एक घंटे से भी कम समय के लिए मेरे पहले लिनक्स डिस्ट्रो पर रहा।

    user@computer:~/Java$ sudo apt-get install openjdk-8-jdk
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    E: Unable to locate package openjdk-8-jdk
    

किसी भी सहायता की सराहना की जाएगी। इस बीच, मैं ओरेकल पैकेज का उपयोग करने वाला हूं। धन्यवाद।

संपादित करें:

इसलिए, अब मुझे एक नई समस्या है। मैंने ओपनजेडके 7 स्थापित किया, यह मावेन के साथ आया था और इससे पहले कि मुझे एहसास हुआ कि मुझे दो-एक का सौदा मिल रहा है, बस स्थापित हो गया। अब मेरे पास JDK 7, और Eclipse, और Maven हैं, और वे सभी काम कर रहे हैं, लेकिन मैं JDK 7 के बजाय 8 पर अटका हुआ हूं।

मैंने देखा कि नीचे एक लिंक है, मैं इसे सुबह में जांचना चाहता हूं, यह 2 बजे है और मैं अभी थक गया हूं। इस नए मुद्दे के लिए किसी अन्य सलाह की सराहना की जाएगी, अन्यथा मैं निश्चित रूप से सुबह उस लिंक को पहली बार देख रहा हूं।



उबंटू का कौन सा संस्करण चल रहा है? संस्करणों के नवीनतम जोड़े ने इसे एक अधिष्ठापन विकल्प के रूप में उपलब्ध किया है।
मोटो

स्टीफन के लिंक से आपकी समस्या हल हो जाएगी :)
Juned

धन्यवाद। यह 2 बजे है, इसलिए मैं बिस्तर पर जा रहा हूं, लेकिन मैं सुबह लिंक देखूंगा। मैंने अपने प्रश्न को एक अतिरिक्त मुद्दे के साथ संपादित किया, यदि आप इसे देख सकते हैं तो यह बहुत अच्छा होगा। यदि मौजूदा लिंक / उत्तर से भी मदद मिलेगी, तो मैं इसे अभी देखने के लिए बहुत थक जाने के लिए माफी माँगता हूँ, मैं सुबह इसकी जाँच करूँगा।
user2223059

मैं ubuntu 14.10 पर हूँ मुझे विश्वास है। जो भी हाल ही में दीर्घकालिक रिलीज थी।
user2223059

जवाबों:


126

अद्यतन : नीचे रूट विशेषाधिकार के बिना स्थापना


मैं आपको सलाह देता हूं कि ubuntu प्रणाली पर मैन्युअल रूप से पैकेज न स्थापित करें यदि आपकी समस्या को हल करने में सक्षम एक (अर्ध-आधिकारिक) भंडार पहले से ही है। इसके अलावा, विकास के लिए ओरेकल जेडडीके का उपयोग करें, बस (बहुत छिटपुट) संगतता मुद्दों से बचने के लिए (मैंने कई साल पहले कोशिश की थी, यह निश्चित रूप से अब बेहतर है)।

अपने सिस्टम में webupd8 रेपो जोड़ें :

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

अपना पसंदीदा संस्करण इंस्टॉल करें (जावा -6 से जावा -9 के संस्करण उपलब्ध):

sudo apt-get install oracle-java8-installer

आप jjk के कई संस्करण भी स्थापित कर सकते हैं, जिसमें ओपनजेडक और ओरेकल संस्करण को मिलाया जा सकता है। तब आप स्थापित संस्करण के बीच स्विच करने के लिए कमांड अपडेट-जावा-विकल्प का उपयोग कर सकते हैं :

# list available jdk
update-java-alternatives --list

# use jdk7
sudo update-java-alternatives --set java-7-oracle

# use jdk8
sudo update-java-alternatives --set java-8-oracle

आवश्यकताएँ

यदि आप स्थापित add-apt-repository: command not foundहोना सुनिश्चित करते हैं software-properties-common:

sudo apt-get install software-properties-common

यदि आप पुराने संस्करण उबंटू का उपयोग कर रहे हैं:

sudo apt-get install python-software-properties

रूट विशेषाधिकार के बिना JDK स्थापना

यदि आपने अपने लक्ष्य मशीन पर व्यवस्थापक अधिकार नहीं बनाए हैं, तो आपकी सबसे आसान शर्त है sdkmanकि आप ज़ुल्लु प्रमाणित ओपनजेडक को स्थापित करें:

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java

नोट : sdkman आधिकारिक ओरेकल JDK को भी स्थापित करने की अनुमति देता है, हालांकि यह डिफ़ॉल्ट विकल्प नहीं है। इसके साथ उपलब्ध संस्करण देखें:

sdk ls java

इसके साथ चुना संस्करण स्थापित करें:

sdk install java <version>

उदाहरण के लिए:

sdk install java 9.0.1-oracle

आदेशों की शब्दावली

  • सुडो <command> [command_arguments] : सुपरसुअर विशेषाधिकार के साथ एक कमांड निष्पादित करें।

  • ऐड-ए-रिपॉजिटरी <PPA_id> : उबंटू (हर डेबियन डेरिवेटिव की तरह और आमतौर पर हर लिनक्स वितरण बोलते हैं) में पैकेज का एक मुख्य भंडार होता है जो पैकेज निर्भरता और अपडेट जैसी चीजों को संभालता है। उबंटू में एक पीपीए (पर्सनल पैकेज आर्काइव) का उपयोग करके मुख्य रिपॉजिटरी का विस्तार करना संभव है, जिसमें आमतौर पर सिस्टम में उपलब्ध पैकेज नहीं होते हैं (जैसे कि ऑरेकल जेडके) या उपलब्ध लोगों के अपडेट किए गए संस्करण (उदाहरण: एलटीएस में लिबरऑफिस 5 केवल इसके माध्यम से उपलब्ध है। पीपीए )।

  • apt-get [install|update|upgrade|purge|...] : it "" कमांड-लाइन पैकेज हैंडलर सिस्टम पर हर रिपॉजिटरी की स्थिति में हेरफेर करने के लिए उपयोग किया जाता है (स्थापित करना / अपडेट करना / अपग्रेड करना रिपॉजिटरी वर्तमान स्थिति के परिवर्तन के रूप में देखा जा सकता है)।

हमारे मामले में : कमांड के साथ sudo add-apt-repository ppa:webupd8team/javaहम सिस्टम को सूचित करते हैं कि अगले रिपॉजिटरी अपडेट को पैकेज की जानकारी को webupd8 रेपो से भी पुनः प्राप्त करना होगा।

जब sudo apt-get updateहम वास्तव में सिस्टम रिपॉजिटरी को अपडेट करते हैं (इस सभी कार्यों के लिए सुपरसुसर विशेषाधिकारों की आवश्यकता होती है, इसलिए हम कमांडो को कमांडो प्रस्तुत करते हैं)।

sudo apt-get install oracle-java8-installer

  • अपडेट-जावा-विकल्प ( अपडेट-विकल्प का एक विशिष्ट जावा संस्करण ): उबंटू में कई पैकेज समान कार्यक्षमता प्रदान करते हैं (इंटरनेट ब्राउज़ करें, मेल संकलित करें, एक पाठ फ़ाइल को संपादित करें या जावा / जावाैक निष्पादनयोग्य प्रदान करता है ...)। सिस्टम को उपयोगकर्ता के पसंदीदा टूल को चुनने की अनुमति देने के लिए एक विशिष्ट कार्य दिया गया है जिसके तहत सिम्बलिंक्स/etc/alternatives/ का उपयोग किया जाता है। ऊपर बताए अनुसार jdk को अपडेट करने का प्रयास करें (java 7 और java 8 के बीच स्विच करें) और देखें कि इस कमांड का आउटपुट कैसे बदलता है:

    ls -l /etc/alternatives/java*

हमारे मामले में : sudo update-java-alternatives --set java-8-oraclejava-8-oracle execables को इंगित करने के लिए / etc / alternates के तहत सहानुभूति अपडेट करें।

अतिरिक्त सुविधाएं:

  • आदमी <command> : प्रत्येक शेल कमांड और उसके विकल्पों पर (लगभग) एक बहुत अच्छी तरह से लिखित और विस्तृत मदद पढ़ने के लिए आदमी का उपयोग करना शुरू करें (इस छोटे से उत्तर में मेरे द्वारा बताए गए प्रत्येक आदेश में एक मैन पेज है, कोशिश करें man update-java-alternatives)।

  • apt-cache search <search_key> : उपलब्ध खोज पैकेज के लिए खोज करने के लिए APT कैश से क्वेरी करें (प्रदान पैकेज का नाम या पैकेज विवरण में कुछ शब्द हो सकता है)।

  • apt-cache show <package> : एक विशिष्ट पैकेज (पैकेज संस्करण, स्थापित या नहीं, विवरण) के लिए APT जानकारी प्रदान करता है।


1
समस्या यह है कि मुझे एक संदेश "पैकेज oracle-java8-संस्थापक का पता लगाने में असमर्थ" है। एक ही बात तब होती है जब मैं sudo apt-get कमांड का उपयोग करके Openjdk 8 प्राप्त करता हूं।
user2223059 14

3
विशेष रूप से, यह (कम से कम लेबल के रूप में) जावा का ओरेकल वाणिज्यिक संस्करण है, न कि खुले सामुदायिक संस्करण (ओपनज्रे)।
ThorSummoner

1
@basZero: लगता है कि आपको सॉफ़्टवेयर गुण स्थापित करने की आवश्यकता है apt-get install software-properties-common:। मैं इस आवश्यकता को शामिल करने के लिए पोस्ट को अपडेट करूंगा। धन्यवाद
Giuseppe Ricupero

1
यह उत्तर मान्य नहीं है - ओरेकल जावा इंस्टॉलर के सीधे डाउनलोड पर प्रतिबंध लगाता है। sudo apt-get install oracle-java8-संस्थापक विफल
एलेक

2
मैं पहले से ही 4 घंटे के लिए इस मुद्दे को हल करने की कोशिश कर रहा हूं। इस भयानक समाधान के लिए धन्यवाद!
.किर्र

116

जैसा कि आप देख सकते हैं कि मेरे पास केवल जावा 1.7 स्थापित है (एक Ubuntu 14.04 मशीन पर)।

update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64

जावा 8 को स्थापित करने के लिए, मैंने किया,

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

बाद में, अब मैं जावा 7 और 8,

update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

बोनस जोड़ा (विभिन्न संस्करणों के बीच कैसे स्विच करें)

  • टर्मिनल से follwing कमांड चलाएँ:

sudo update-alternatives --config java

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
* 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1069      manual mode

Press enter to keep the current choice[*], or type selection number:

जैसा कि आप देख सकते हैं कि मैं ओपन jdk 8 चला रहा हूं। jdk 7 में जाने के लिए, कुंजी दबाएं 1और Enterदबाएं। के javacरूप में अच्छी तरह से के लिए एक ही करो sudo update-alternatives --config javac

परिवर्तन की पुष्टि करने के लिए संस्करणों की जाँच करें: java -versionऔर javac -version


2
बहुत उपयोगी था मुझे नहीं पता था कि OpenJDK को स्थापित करने के लिए कौन से रेपो की आवश्यकता थी! बहुत बहुत धन्यवाद।
cram2208

@ cram2208 को खुशी हुई जिसने आपकी मदद की। टिप्पणी के लिए धन्यवाद।
संस्कारम

Openjdk-r सर्वर के लिए पर्याप्त सुरक्षित है?
वांग

विस्तार से उत्तर के लिए धन्यवाद, यह समाधान मेरे लिए पूरी तरह से काम कर रहा है।
मद्दासिर 23

14

मैं कुछ यादृच्छिक PPA या गैर-मुक्त Oracle बाइनरी के बजाय आधिकारिक Debian रिपॉजिटरी से OpenJDK 8 प्राप्त कर रहा हूं। यहाँ है कि मैंने यह कैसे किया:

sudo apt-get install debian-keyring debian-archive-keyring

बनाओ /etc/apt/sources.list.d/debian-jessie-backports.list:

deb http://httpredir.debian.org/debian/ jessie-backports main

बनाओ /etc/apt/preferences.d/debian-jessie-backports:

Package: *
Pin: release o=Debian,a=jessie-backports
Pin-Priority: -200

फिर अंत में स्थापित करें:

sudo apt-get update
sudo apt-get -t jessie-backports install openjdk-8-jdk

1
और अंतिम रूप से update-alternatives --config java ;-)
ज्वाली

आपका बहुत बहुत धन्यवाद! यह एकमात्र समाधान है जिसने मेरे लिए काम किया (डेब 8)

3
sudo apt-get update
sudo apt-get  install openjdk-8-jdk

यह काम करना चाहिए


कृपया एक स्पष्टीकरण जोड़ें कि यह मौजूदा उत्तरों में क्या जोड़ता है।
गर्ट अर्नोल्ड

मैं Windows से WSL2 का उपयोग कर रहा था, और मैं OpenJDK को स्थापित करने से पहले संकुल को अद्यतन करना भूल गया और वही त्रुटि मिली। @GertArnold, Zoe के जवाब ने मुझे उस परिदृश्य में मदद की।
पीसीडीआरओ

0

मैं एक ही मुद्दा रहा था और इस पृष्ठ पर समाधान के सभी की कोशिश की, लेकिन उनमें से कोई भी चाल चली।

आखिरकार जो काम किया वह universeरेपो को मेरी रेपो सूची में शामिल कर रहा था। ऐसा करने के लिए निम्नलिखित कमांड चलाएँ

sudo add-apt-repository universe

उपरोक्त कमांड चलाने के बाद मैं दौड़ने में सक्षम था

sudo apt install openjdk-8-jre

एक समस्या के बिना और पैकेज स्थापित किया गया था।

आशा है कि यह किसी की मदद करता है।


मुझे यकीन नहीं है कि मुझे इस जवाब के लिए नीचा दिखाया गया है। अगर कुछ गलत या एक संभावित मुद्दा है, तो कृपया दूसरों की मदद करने के लिए एक टिप्पणी छोड़ दें और खुद को बेहतर समझें।
डेनियल ब्लैक

0

JDKरेपो को जोड़ने के बाद, इंस्टाल करने से पहले आप एक अपडेट चलाना चाहते हैं ताकि रेपो को जोड़ा जा सके apt update

फिर अपनी स्थापना के साथ जारी रखें sudo apt install adoptopenjdk-8-hotspot

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