2012-12-05 18 views
13

पर दिखाए गए विभिन्न जावा संस्करण मैंने हाल ही में अपने जावा संस्करण पर जांच की है। मैंने कमांड java -version चलाया और मुझे पता चला कि मैं java version 1.7.0_09 का उपयोग कर रहा था। लेकिन जब मैंने C:\Program Files\Java\ निर्देशिका को जांचने का प्रयास किया, तो मुझे वही संस्करण नहीं दिख रहा है। मैं केवल निम्न देखें:कमांड लाइन

  • j2re1.4
  • jdk1.6.0_32
  • jdk1.7.0_06
  • jdk1.7.0_07
  • jre6
  • jre7

और इतने पर ...

मेरा पी rograms अभी भी चल रहा है, लेकिन मैं बस सबकुछ मैन्युअल रूप से संकलित करने की कोशिश कर रहा हूं, और समझता हूं कि ओएस द्वारा जावा का इलाज कैसे किया जा रहा है।

अजीब बात यह है कि, मैंने पर्यावरण परिवर्तनीय सेटिंग्स को जांचने की कोशिश की है, और यह jdk1.7.0_09 के बारे में कुछ भी नहीं कहता है।

पथ:

  • C: \ Program Files \ Common Files \ Microsoft साझा \ विंडोज लाइव;
  • % SystemRoot% \ system32;
  • % SystemRoot%;
  • % SystemRoot% \ System32 \ Wbem;
  • % SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \;
  • सी: \ प्रोग्राम फ़ाइलें \ TortoiseSVN \ bin;
  • सी: \ प्रोग्राम फ़ाइलें \ विंडोज लाइव \ साझा;
  • सी: \ eclipse \ plugins \ com.google.appengine.eclipse.sdkbundle_1.6.5 \ appengine-java-sdk-1.6.5 \ bin;
  • सी: \ प्रोग्राम फ़ाइलें \ जावा \ jdk1.7.0_07 \ bin; सी: \ प्रोग्राम फ़ाइलें \ क्विकटाइम \ QTSystem \;
  • % ANT_HOME% \ बिन

बस जाने के लिए आप लोग जानते हैं कि यह किसी भी तरह स्वचालित रूप से एक JRE बन चाहते हैं।

पूरी निर्देशिका C:\Users\User02\AppData\LocalLow\Sun\Java\jre1.7.0_09 है और इसे अभी फ़ाइल lzma.dll नाम मिली है।

लेकिन, मेरे पास एक और निर्देशिका है जो C:\Users\User02\AppData\LocalLow\Sun\Java\jdk1.7.0_07 कहती है। इसके अंदर फ़ाइलें हैं:

  • jdk1.7.0_07.msi
  • sj170070.cab
  • ss170070.cab
  • st170070.cab
  • और sz170070.cab
+0

क्या यह सिर्फ मुझे है, या उस सूची में एक ही नाम के दो निर्देशिका हैं? – stevevls

+1

यदि आप अपने कंप्यूटर पर किसी अन्य प्रोग्राम की तरह ही स्पष्ट रूप से इसे निर्दिष्ट नहीं कर रहे हैं, तो आप जो भी अपना रास्ता सेट कर चुके हैं उसे प्राप्त करें। ** संपादित करें: ** देखें: http://www.computerhope.com/issues/ch000549.htm –

+1

विंडो में खोज का उपयोग करें और 'जावा' के सभी उदाहरण खोजें। आपका पथ उन स्थानों में से एक पर इंगित किया गया है, और यही वह है जिसे आप प्राप्त करते हैं यदि आप केवल 'जावा' –

उत्तर

14

यह एक कंप्यूटर पर कई जेआरई साइड-साइड होना संभव है।

यदि जेआरई विंडोज़ पर ठीक से स्थापित है, तो प्रत्येक संस्करण के बारे में जानकारी रजिस्ट्री में संग्रहीत की जाती है। इंस्टॉलेशन प्रक्रिया सिस्टम पाथ (% SYSTEMROOT% \ System32) में विशेष java.exe स्थापित करती है)। इसलिए आपको पाथ बदलने की जरूरत नहीं है क्योंकि यह विशेष java.exe वर्तमान जेआरई पायेगा। कमांड लाइन से, वर्तमान जेरे संस्करण को स्थापित करने के लिए जावा-वर्जन टाइप करें।

रिलीज 1.6 के साथ, अब किसी भी रजिस्ट्री संशोधन के बिना अंतिम जेआरई स्थापना का चयन करना संभव है।

JRE स्थापना कुंजी

HKEY_LOCAL_MACHINE \ SOFTWARE \ में रजिस्ट्री में सूचीबद्ध हैं JavaSoft \ जावा रनटाइम एनवायरनमेंट

एक पर यह साधारण परीक्षण वर्ग

public class ShowVersion { 
public static void main(String args[]) { 
    System.out.println(System.getProperty("java.version")); 
} 
} 

ले लो 1.6 और 1.5 के साथ प्रणाली स्थापित। यदि आप

> java ShowVersion 

शायद यह 1.6 जेआरई है जिसका उपयोग अंतिम स्थापित होने के बाद किया जाएगा।

इसके बजाय 1.5 जेआरई को मजबूर करने के लिए, इस कमांड लाइन का उपयोग करें।

> java -version:"1.5" ShowVersion 

यदि बाइटकोड दिए गए जेआरई के साथ असंगत है तो .. यह निश्चित रूप से काम नहीं करेगा।

रेफरी: technote java 6

तुम हमेशा एक विशिष्ट स्थापना का उपयोग करने के पूर्ण पथ दे सकते हैं। JVM को लॉन्च करने से इस तरह रजिस्ट्री सेटिंग का उपयोग नहीं होता है।

>"C:\Program Files\Java\j2re1.4.1_02\bin\java" -version 
java version "1.4.1_02" 

स्रोत: Select a particular JRE from the command line

"वास्तविक" प्रश्न के उत्तर में
+0

यह सुविधा [जेडीके 9] से हटा दी गई है (https://bugs.java.com/view_bug.do?bug_id=JDK-8050071), दुखद बात। – RealHowTo

2

:

एक और बात यह है कि अजीब है मैं पर्यावरण चर सेटिंग्स पर जांच करने की कोशिश की, है, और यदि ऐसा नहीं होता jdk1.7.0_09 के बारे में कुछ भी कहें।

यहां क्या हुआ है कि आपने jdk1.7.0_07 स्थापित किया है और फिर आप इसे स्वतः अपग्रेड कर चुके हैं। जब ऐसा होता है, तो यह अभी भी पुराने फ़ोल्डर नाम का उपयोग करता है जिसे आपने मूल रूप से इंस्टॉल किया था।

जावा स्थापित करने के बाद, मैं आमतौर पर जेडीके निर्देशिका की प्रति बना देता हूं और इसे संस्करण संख्या के साथ नाम देता हूं। फिर, मैं सीधे तो जैसे एक निश्चित जावा फोन कर सकते हैं:

@echo off 
:: testjava.bat 
set JAVA_HOME=C:\JDK1.x.xx 
set PATH=%JAVA_HOME%\bin;%PATH%;. 
java -version 
pause 

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

+0

क्या आप निश्चित हैं कि जेडीके के लिए ऑटो-अपडेटिंग उपलब्ध है? ([प्रासंगिक प्रश्न।] (Http://stackoverflow.com/questions/1829986/is-there-a-way-to-update-the-jdk-without-manually-downloading-the-new-version)) मैंने सोचा केवल जेआरई ने ऑटो-अपडेटिंग की थी। – Brian

+0

सच है। उस स्थिति में, यह बताता है कि जावा जेआरई जावा के प्रमुख संस्करण के नाम पर एक निर्देशिका में प्रोग्राम फ़ाइलों को क्यों स्थापित किया गया है और इसमें मामूली संस्करण या बिल्ड नंबर शामिल नहीं है। ऐसा इसलिए होगा क्योंकि यह स्वतः अपग्रेड करता है।इसलिए, इस मामले में, उनकी प्रणाली अद्यतन जेआरई 7 को डिफ़ॉल्ट जावा के रूप में इंगित कर रही है और उस जावा के संस्करण को मामूली संशोधन 09 में स्वतः अपग्रेड किया गया था। – djangofan

2

आपकी टिप्पणी में AppData पथ आपके पथ पर नहीं है (माना जाता है, वैसे भी), तो शायद यह नहीं है कि यह क्या उपयोग कर रहा है। दुर्भाग्यवश, विंडोज़ पर which कमांड नहीं है।

यदि आप अपना रास्ता संपादित करते हैं और C:\Program Files\Java\bin निर्देशिका को सूची की शुरुआत में ले जाते हैं और यह अभी भी 1.7.0_09 प्रिंट करता है, तो किसी भी तरह आपके JDK7u7 फ़ोल्डर में JDK7u9 है। यदि नहीं, तो अपने पथ पर अन्य सभी निर्देशिकाओं को ब्राउज़ करें और उन्हें 1-बाय-1 खोलें जब तक आपको उचित java फ़ाइल नहीं मिल जाती। सौभाग्य से आपके लिए, आपका पथ है मेरा से छोटा है।

ध्यान दें कि जब कर रही:

> java -version 

यह भी java.bat और अन्य गैर exe एक्सटेंशन के लिए करते हैं, इसलिए जब आप अपने पथ खोज कर रहे हैं इस पर नज़र रख सकते हैं। चलाने की कोशिश करें:

> java.exe -version 

इस तरह आप जानते हैं आप एक exe फ़ाइल के लिए देख रहे हैं।

एक आखिरी बात तुम कोशिश कर सकते हैं:

> "C:\Program Files\Java\jdk1.7.0_07\bin\java" -version 

इस देता है, तो 1.7.0_09, तो कुछ है कि यथा-स्थान अपने JDK, जो होने के लिए, AFAIK चाहिए नहीं है अद्यतन हुआ (लेकिन मैं गलत हो सकता है) ।

2

आपकी समस्या का समाधान होगा निम्नलिखित जोड़ना: अगर यह काम नहीं करता है इसका मतलब है कि आप एक से अधिक जावा संस्करणों के लिए PATH निर्धारित किया है, में शामिल हैं केवल एक नवीनतम और PATH चर से सभी को निकालने के

set JAVA_HOME="your jdk path" 
set PATH=%JAVA_HOME%\bin;%PATH%. 

ही।