2013-08-15 4 views
5

हमारे जावा प्रोजेक्ट के लिए, हम कई जेएआर पुस्तकालयों का उपयोग करते हैं। जेएआर पुस्तकालयों के लिए कुछ स्रोत कोड खो गए हैं।क्या हमें जेडीके अपग्रेड के लिए जेएआर संकलित करने की आवश्यकता है?

हम जल्द ही जेआरई संस्करण को अपग्रेड कर देंगे, क्या आपको पता है कि हमें नए जेआरई संस्करण के लिए जेएआर पुस्तकालयों को फिर से कंपाइल करने की आवश्यकता है? चूंकि हमारे पास स्रोत नहीं है, क्या वहां 100% सटीक डीकंपलर है?

+0

हम, जावा हमेशा पीछे की संगतता रखते हैं, इसलिए आपको पुनः संयोजित करने की आवश्यकता नहीं है। – jsedano

उत्तर

6

नहीं, सभी जेडीके संस्करण पुराने जार के संबंध में पीछे-संगत हैं।

आपको पुन: संकलित करने की आवश्यकता नहीं है।

इसका एकमात्र अपवाद यह है कि यदि JAR एक जेडीबीसी ड्राइवर लागू करता है (उपयोग नहीं करता है, लेकिन लागू करता है)।

+0

+1 यदि आप केवल लागू विधियों के सबसेट का उपयोग करते हैं, तो इससे कोई फर्क नहीं पड़ता कि एक नए जेडीबीसी इंटरफ़ेस में और विधियां हैं। जैसे यदि कार्यान्वयन को फिर से संकलित किए बिना इंटरफ़ेस में उपयोग की जाने वाली विधि जोड़ें, तो यह सब काम कर सकता है। –

+0

तो क्या होता है जब नए जेआरई संस्करण में कुछ गिरावट आई है ... जो आने वाले जेआरई संस्करणों में हटा दिया जाएगा। क्या आप वाकई नए संस्करण के लिए जेआरई को दोबारा नहीं जोड़ना चाहते हैं? – firebird

+1

बहिष्कृत के रूप में चिह्नित कुछ भी * कभी * हटा दिया गया है। आपके पास कभी भी किसी भी परिस्थिति में पुन: संकलन करने की आवश्यकता नहीं है जिसे आप चलाने की संभावना रखते हैं। – kittylyst

0

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

1

आपको जावा 8 JVM पर जावा 1.0 JAR को फिर से संकलित करने की आवश्यकता नहीं है।

आपके पास जो भी हो सकता है वह आपके कोड में एक बग है जो आपके संस्करण में दिखाई नहीं देता है लेकिन यह कभी भी संस्करण में दिखाई नहीं देता है। जैसे आप कुछ अपरिभाषित व्यवहार या एक बग पर निर्भर थे जिसे बाद में तय किया गया था। इस मामले में, आपको अपना कोड ठीक करना होगा, फिर से संकलित करना पर्याप्त नहीं होगा।

0

कुछ आंतरिक कक्षाएं हैं, जैसे सूर्य के बेस 64 एन्कोडिंग/डिकोडिंग, जो धीरे-धीरे नए संस्करणों में गायब हो जाएंगे। सूर्य पैकेज के साथ समस्याएं हैं या नहीं, यह जांचने के लिए आप ओपनजेडीके के खिलाफ दौड़ सकते हैं।

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