2008-11-07 9 views
5

मैंने System.getProperty("os.name") के बारे में वास्तव में कुछ परेशानियों में ठोकर खाई है। a Java bug on the matter और the Java 5 release notes ("os.name" के लिए खोज) के अनुसार, वहाँ विस्टा के प्रारंभिक "सूंडवाले" संस्करणों के साथ जावा में एक बग है कि मेरे Vista SP1 बॉक्स पर v5 रिहाई से 10विस्टा बॉक्स रिपोर्टिंग पर जावा क्यों है यह XP पर है?

हालांकि में तय किया जाना चाहिए था था - वी 5 रिलीज 15 और वी 6 रिलीज 6 - System.getProperty("os.name") दोनों का उपयोग करके "विंडोज एक्सपी" लौटाता है। आगे System.getProperty("os.version") "5.1" देता है। हालांकि मुझे Google के माध्यम से इस मुद्दे से संबंधित कुछ भी नहीं मिल रहा है। इससे मुझे आश्चर्य होता है कि यह मेरे Vista सेटअप के साथ कुछ अजीब है या नहीं। मैंने एक परीक्षण सी प्रोग्राम से GetVersionEx() एपीआई फ़ंक्शन को कॉल करने का प्रयास किया है और यह प्रमुख संस्करण 6, मामूली 0 (जैसा कि मैं Vista इंस्टॉल करने की अपेक्षा करता हूं) देता है।

क्या किसी और को इस समस्या का सामना करना पड़ा है, किसी फिक्स के बारे में पता है या कोई सुझाव है कि मैं जेएनआई का उपयोग किए बिना इसके आसपास कैसे काम कर सकता हूं?

+0

इससे मुझे यह पता लगाने में मदद मिली कि हमारा उत्पाद गलत मान क्यों लौट रहा है। जावा बग, 6u14 में तय ... बहुत बुरा हम अभी भी 6u13 = D – GreenKiwi

उत्तर

10

यह हो सकता है कि जावा एक्सपी संगतता मोड में चलता है। उस स्थिति में, Vista विंडोज संस्करण संख्या नकली करेगा, जिससे जावा का मानना ​​है कि यह एक्सपी पर चलता है। निष्पादन योग्य के संगतता टैब की जांच करें।

+0

आप एक प्रतिभाशाली महोदय हैं! :) मैं एक्सीप्से को संगतता मोड में चला रहा था क्योंकि विस्टा में स्वचालित स्क्रॉलिंग सुविधा ग्रहण के करीब ग्रहण करती है। नतीजतन, यह किसी भी जावा कोड को चला रहा था जिसे मैंने एक्लिप्स से संगतता मोड में भी लॉन्च किया था। यह विस्टा को संगतता मोड बंद कर देता है ठीक है: डी –

0

विंडोज 2000 का वास्तविक विंडोज संस्करण संख्या 5.0 था। विंडोज एक्सपी 5.1 था। Vista माना जाता है 6.0, तो आपका परीक्षण प्रोग्राम सही ढंग से काम कर रहा है। यह मुझे लगता है जैसे जावा निश्चित रूप से यह गलत हो रहा है।

आपको सही उत्तर प्राप्त करने के लिए जेएनआई पर भरोसा करना पड़ सकता है। मुझे लगता है कि आप पहले से ही खुद से पूछ चुके हैं कि आप अपने प्रोग्राम के व्यवहार को अलग-अलग करने की आवश्यकता क्यों कर सकते हैं कि आप XP या Vista का उपयोग कर रहे हैं या नहीं।

+0

के साथ शिपिंग कर रहे हैं इसका जवाब मुझे व्यवहार को बदलने की आवश्यकता क्यों है सरल: symlinks। वे Vista में मौजूद हैं और XP में नहीं;) –

+0

मार्टिन के उत्तर की जांच करें, यह वाकई अच्छा है! –

संबंधित मुद्दे