मेरी विकास टीम को हाल ही में एक दूरस्थ विकास के माहौल के लिए मजबूर किया गया था जहां हम सर्वरों तक पूरी पहुंच नहीं रखते हैं। बदलाव से पहले हमारे पास एक JAR था जो JRE 7. के साथ-साथ जावा 1.7 x64 पर ठीक चल रहा था। जब हम नए सर्वर पर चले गए तो हमारा JAR ठीक चल रहा था, लेकिन तब एक सर्वर ने हमारे जावा को पुराने में "अपडेट" कर दिया संस्करण और हम उपयोग कर रहे थे की स्थापना रद्द। मुझे मत पूछो क्यों, मुझे नहीं पता। मैंने जावा 1.7 को फिर से स्थापित किया और JRE के साथ 1.6 की स्थापना रद्द की।
निम्न समस्या रनटाइम पर होती है, कोई बिल्ड त्रुटियाँ नहीं हैं:
Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.7', but '1.6' is required.
Error: could not find java.dll
Error: could not find Java SE Runtime Environment.
मैंने अपने लैपटॉप पर वही JAR चलाया है जिसमें कोई समस्या नहीं है। सर्वर और मेरे लैपटॉप दोनों में JDK 1.7 और JRE 7 संबंधित% HOME% चर और सिस्टम PATH में हैं। मैंने JRE 6 को फिर से इंस्टॉल किया है और इसे बाद में सिस्टम वातावरण PATH चर में उसी परिणाम के साथ रखा है।
मैंने 1.6 को देखने के लिए रजिस्ट्री को वापस भी बदल दिया है और इसका परिणाम निम्नलिखित है, जिसे मैंने देखा और यह कई जावस स्थापित होने (मेरी मूल समस्या पर वापस आने) से प्रतीत होता है:
Exception in thread "main" java.lang.UnsupportedClassVersionError: ... :
Unsupported major.minor version 51.0
मैं किसी भी अंतर्दृष्टि की सराहना करता हूं आप सभी के रूप में मैं विभिन्न मंचों पर देख रहा हूं, लेकिन कुछ भी नहीं लगता है कि वास्तव में मेरी समस्या है। इसके अलावा, यह एक और सर्वर पर भी हुआ है जिसका हम उपयोग कर रहे हैं। धन्यवाद!
अपडेट: JAR को 1.6 या 1.7 में फिर से जोड़ने और JDK के मिलान के साथ कोई भाग्य नहीं। इसके अलावा, दुनिया में जावा का एक नया संस्करण पुराने संकलित संस्करण को क्यों तोड़ देगा?