मैं इसे स्थापित करने के बाद लिनक्स में जावा एसडीके कहां पा सकता हूं?


185

मैंने apt-get install का उपयोग करके JDK स्थापित किया है, लेकिन मुझे नहीं पता कि मेरा jdk फ़ोल्डर कहाँ है। मुझे उसके लिए रास्ता तय करना होगा। क्या किसी एक का लोकेशन पर कोई सुराग है?


1
लिनक्स वितरण: डेबियन 2.6.26
dinesh707

/usr/local/java/मूल डाउनलोड किए गए ओरेकल वितरण के लिए प्रयास करें ।
ज़ोन

जवाबों:


385

यह आपके पैकेज सिस्टम से थोड़ा सा निर्भर करता है ... यदि javaकमांड काम करता है, तो आप readlink -f $(which java)जावा कमांड के स्थान का पता लगाने के लिए टाइप कर सकते हैं । OpenSUSE सिस्टम पर मैं अभी लौट रहा हूं /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/java(लेकिन यह एक सिस्टम नहीं है जो उपयोग करता है apt-get)।


उबंटू पर, ऐसा लगता है कि यह /usr/lib/jvm/java-6-openjdk/ OpenJDK के लिए है, और /usr/lib/jvm/Suns JDK (और अन्य कार्यान्वयन के साथ-साथ, मुझे लगता है) के लिए कुछ अन्य उपनिर्देशिका में है ।

डेबियन वही है।


किसी भी दिए गए पैकेज के लिए आप यह निर्धारित कर सकते हैं कि यह किस फाइल को स्थापित करता है और कहां से इसे स्थापित करता है। उदाहरण के लिए पैकेज 'openjdk-6-jdk' के लिए:dpkg -L openjdk-6-jdk


1
orth / in / usr / java में भी कुछ सेटअप पर मैंने देखा है
jlb83

यदि आप एंड्रॉइड स्टूडियो में JDK पथ जोड़ना चाहते हैं, तो इस / usr / lib / jvm / java-8-oracle /
रोहित रोकड़े

3
लगता है मेरा रास्ता है /usr/lib/jvm/java-7-openjdk-amd64
einverne

2
मुझे लगता है कि जैसा कि रीडिंक सबसे सुरुचिपूर्ण (और कुशल) है, लेकिन मैं सुझाव देता हूं readlink -f $(which javac) - ध्यान दें कि एक ही मशीन पर जेडडीके और जेआरई का एक अजीब मिश्रण है। JDK में एक कंपाइलर (javac) और एक JRE शामिल नहीं है। हालांकि अगर रास्ता सही नहीं है, जो विफल हो जाएगा और आप यह कोशिश कर सकते हैं: find /usr/java -wholename '*ava/jdk*' -pruneजैसा कि मैंने नीचे टिप्पणी में ध्यान दिया है।
स्टीवन आसानी से उपयोग होने वाली

@Innemucca यह मेरे लिए काम करता है, आप पा सकते हैं कि जावा कहाँ है और फिर आप पा सकते हैं जहाँ jdk पथ है।
इविनवर्न

45
update-java-alternatives -l

आपको बताएगा कि आपके सिस्टम के लिए कौन सा जावा कार्यान्वयन डिफ़ॉल्ट है और फाइल सिस्टम में यह कहाँ स्थापित है। अधिक विकल्पों के लिए मैनुअल की जाँच करें।


7
यह डेबियन विशिष्ट (कम से कम) है। अन्य
डिस्ट्रोस में

2
@ डिक्विस, यह डेबियन के लिए विशिष्ट उत्तर है, क्योंकि प्रश्न का उल्लेख किया गया है apt-getऔर डिस्ट्रो होना है Debian 2.6.26। AFAIK, यह सभी डेबियन डेरिवेटिव के लिए समान होना चाहिए।
फोर्सफेक

2
मैं अन्य लोगों के लिए इसे इंगित कर रहा हूं। मुझे पता है कि यह इस विशेष प्रश्न के लिए मान्य है।
डिक्विस

1
अद्यतन-विकल्प - सूची | grep जावा ने मेरे लिए RHEL
Upen

30
$ which java 

आपको ऐसा कुछ देना चाहिए

/usr/bin/java

2
सच। मुझे यकीन है कि यह उपयुक्त हो जाने के बाद
सूर्यास्त

6
यह वास्तव में पूर्ण JDK की ओर इशारा नहीं करता है। 1. यह एक सिम्लिंक है, और यदि आप सिम्लिंक को पढ़ते हैं, तो भी बाइनरी एक JDK के भीतर नहीं है। उदाहरण के लिए, अगर मैं कमांड को readlink -f $(which javac)प्रिंट करता हूं /usr/lib/jvm/java-8-oracle/bin/javac। वह बिन फ़ोल्डर JDK नहीं है। सामान्य एसिड-बेस टेस्ट यह देखने के लिए कि क्या इसका जेडीके यह देखने के लिए है कि क्या इसमें करंट का $JAVA_HOMEरास्ता है lib/tools.jar। के कलाकारों में /usr/lib/jvm/java-8-oracle/binयह सच नहीं है, इसलिए यह जेडीके नहीं है।
लाश

सेंटोस / आरएचएल पर यह वही है जो मैं जेडडीके (यदि स्थापित है) खोजना पसंद करता हूं find /usr/java -wholename '*ava/jdk*' -prune लेकिन व्यवहार निर्भर करता है कि आप ओपनजेडके या ओरेकल जावा के बारे में बात कर रहे हैं या यह पहली जगह में कैसे स्थापित किया गया था।
आसानी से इस्तेमाल होने वाला

12

यह प्रश्न स्थानांतरित हो जाएगा लेकिन आप निम्न कार्य कर सकते हैं

which javac

या

cd /
find . -name 'javac'

मुझे दूसरा विकल्प पसंद है - सरल और उपयोगी यदि आपके पास कई JRE / JDK हैं और उन सभी को ढूंढना चाहते हैं।
अमोस एम। बढ़ई

"ढूँढें / -नाम 'जेवैक'" कम टाइपिंग है, लेकिन इसके लिए व्यवस्थापक (रूट) विशेषाधिकार की आवश्यकता होती है या आपको संदेशों को अस्वीकार करने की बहुत अनुमति मिलेगी।
स्टीवन आसानी से उपयोग होने वाला

9

इसे खोजने के लिए स्थित का उपयोग करें। यह कुछ हद तक होना चाहिए /usr:

find /usr -name java

कमांड चलाते समय, यदि बहुत सारे "अनुमति अस्वीकृत" संदेश वास्तविक पाए गए परिणामों को बाधित करते हैं, तो बस / डीर / नल को पुनर्निर्देशित करें

find /usr -name java 2> /dev/null

1
यदि रूट (व्यवस्थापक) नहीं है तो आपको बहुत सारे अनुमति अस्वीकृत संदेश मिलेंगे।
स्टीवन आसानी से इस्तेमाल होने वाला

7

जावा फ़ोल्डर पथ को खोजने का एक और सबसे अच्छा तरीका alternativesफेडोरा लिनक्स में कमांड का उपयोग करना है (मैं इसके Ubuntu के लिए जानता हूं लेकिन मैंने इस पोस्ट को सिर्फ इसकी हेडलाइन से Google पर हिट किया है)। बस मेरे जैसे लोगों को लाइक करना चाहते हैं ताकि फेडोरा फ्लेवर के जवाब खोज सकें।

जावा के संबंध में सभी जानकारी प्रदर्शित करने के लिए

alternatives --display java

1
इसने मेरे लिए काम किया, लौटकर / usr / java / jdk- [संस्करण] फेडोरा पर
सीना मदनी

3

तीन चरण प्रक्रिया: पहला: टर्मिनल खोलें-> $ whereis java यह इस तरह आउटपुट देगा: java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

दूसरा: ls -l /usr/bin/java यह इस तरह आउटपुट देगा: lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java

तीसरा: ls -l /etc/alternatives/java आउटपुट JDK पथ है: lrwxrwxrwx 1 root root 46 Feb 9 10:59 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java



1

कमांड: sudo update-alternatives --config javaसभी इंस्टॉल किए गए जावा संस्करणों का पूरा रास्ता ढूंढ लेगा


1

यह सवाल अभी भी प्रासंगिक लगता है, और जवाब एक लक्ष्य लक्ष्य लगता है।

मेरे डेबियन सिस्टम (बस्टर) पर:

> update-java-alternatives -l
java-1.11.0-openjdk-amd64      1111       /usr/lib/jvm/java-1.11.0-openjdk-amd64

हालाँकि, यदि आप वास्तव में वहाँ जाते हैं, तो आप देखेंगे कि भविष्य के रखरखाव को आसान बनाने के लिए पैकेज सिस्टम द्वारा कई निर्देशिकाएँ और प्रतीकात्मक लिंक वहाँ रखे गए हैं।

वास्तविक निर्देशिका java-11-openjdk-amd64एक और सिम्क्लिन के साथ है default-java। एक openjdk-11निर्देशिका भी है , लेकिन यह केवल एक source.zip फ़ाइल सम्‍मिलित करता है।

इसे देखते हुए, डेबियन ओनली के लिए, मुझे लगता है कि उपयोग करने के लिए सबसे अच्छा मूल्य है /usr/lib/jvm/default-java, क्योंकि यह हमेशा मान्य होना चाहिए, भले ही आप जावा के पूरी तरह से अलग संस्करण को स्थापित करने का निर्णय लें, या विक्रेताओं को भी स्विच करें।

रास्ता जानने की इच्छा का सामान्य कारण यह है कि कुछ अनुप्रयोग यह चाहते हैं, और आप शायद उस ऐप को नहीं तोड़ना चाहते क्योंकि आपने एक अपग्रेड किया था जिसने संस्करण संख्याओं को बदल दिया था।


0

OpenSUSE 13.1 / 13.2 पर इसका: /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
वर्जन-नंबर 1.7.x 1.8.x आदि हो सकता है। सॉफ्टवेयर मैनेजर डायन वर्जन आदि की जांच करें ...

आंद्रे


0

लिनक्स Fedora30 पर पूर्ण जावा JDK के कई संस्करण उपलब्ध हैं, विशेष रूप से पैकेज के नाम:

java-1.8.0-openjdk-devel.x86_64 
java-11-openjdk-devel.x86_64

एक बार स्थापित होने के बाद, वे इसमें पाए जाते हैं: /usr/lib/jvm

पूर्ण विकास के स्थान / निर्देशिका का चयन करने के लिए JDK (जो सरल रनटाइम केवल JRE से अलग है) प्रविष्टियों के लिए देखें:

ls -ld java*openjdk*

यहां दो अच्छे विकल्प हैं, जो विशिष्ट संस्करणों के लिंक हैं, जहां आपको संस्करण का चयन करना होगा:

/usr/lib/jvm/java-1.8.0-openjdk
/usr/lib/jvm/java-11-openjdk

0

यह सबसे अच्छा तरीका है जिसने मेरे लिए इस कमांड को निष्पादित करने का काम किया है: -

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