जावा संस्करण बदल रहा है

मेरे पास एक सर्वर - क्लाइंट एप्लिकेशन है जो जावा 1.3 पर चलता है; मैं जावा 1.6 कदम से कदम में बदलना चाहता हूं, जिसका मतलब है कि कुछ ग्राहकों और अंततः सर्वर के मुकाबले पहले कुछ ग्राहक ... मैं सोच रहा था कि क्या आप मुझे कुछ सामान्य समस्याओं के बारे में बता सकते हैं जो साथ आ सकते हैं और मुझे क्या देखना चाहिए?

0

6 उत्तर

जब मैं एक छोटे से एप्लेट पर 1.4.2 से 1.5 तक चले गए, मैंने काम किया, बहुत सारी चीजें तोड़ दीं: स्क्रीन रीफ्रेश सभी गेटकी, तत्वों को स्थानांतरित कर दिया गया।

सूर्य का जेआरई सब कुछ के लिए पिछड़ा संगतता बनाए रखता नहीं है। कभी-कभी जब आइटम बहिष्कृत होते हैं, तो वे बहुत कम समय के बाद पूरी तरह से चले जाते हैं।

हमने सूर्य के पुस्तकालयों का उपयोग करके "स्टॉक" जावा के साथ सबकुछ लिखा है।

मैंने शुद्ध जावा में लिखे गए कई एप्लिकेशन भी देखे हैं जो जेआरई के एक ही संस्करण में एक या दो प्लेटफॉर्म पर ठीक काम करते हैं, उस संस्करण के साथ अन्य लोगों पर विफल रहता है (जिस उत्पाद के साथ मैं काम करता हूं वह विंडोज़ पर बहुत अच्छा काम करता है, मैक ओएस एक्स पर ठीक है, लिनक्स पर सभ्य, लेकिन सोलारिस पर विफल रहता है - सभी एक ही जेआरई के साथ)।

मूविंग संस्करण एक आसान कदम नहीं है, जब तक कि एप्लिकेशन वास्तव में छोटा न हो।

0
जोड़ा
मेरे अनुभव में, आमतौर पर स्विंग एपीआई के दुरुपयोग से उत्पन्न संस्करणों के बीच स्क्रीन रीफ्रेश करें जो काम करने की गारंटी नहीं देते थे। हालांकि, उस अनुभव के लिए निश्चित रूप से अपवाद हैं। :)
जोड़ा लेखक jsight, स्रोत
इस बिंदु पर, मेरे सिर के ऊपर से नहीं - मैंने 1.4.2 के बाद से जावा को छुआ नहीं है, लेकिन 1.4.2 में 1.2-युग कॉल का उपयोग करने के प्रयास में निश्चित रूप से कुछ समस्याएं थीं।
जोड़ा लेखक warren, स्रोत
मैंने वास्तव में हटाए गए एक बहिष्कृत विधि के बारे में कभी नहीं सुना है। 1.0.x से कुछ बहिष्कृत विधियां अभी भी जावा 6 में हैं। क्या आप कोई उदाहरण दे सकते हैं?
जोड़ा लेखक Peter Lawrey, स्रोत

सूर्य उच्च स्तर की पिछड़ा-संगतता रखने की कोशिश करता है, इसलिए आप संभवत: बस नया जेवीएम इंस्टॉल कर सकते हैं और इसके साथ अपने एप्लिकेशन को पुनरारंभ कर सकते हैं।

पिछले संस्करण के साथ जावा 1.6 से पिछड़ी असंगतताओं का वर्णन करने वाला एक दस्तावेज़ यहां । यह दस्तावेज़ जावा 1.5 और जावा 1.4 भी। संभावित नुकसान के बारे में जानने के लिए आप शायद इस दस्तावेज़ को पढ़ना चाहते हैं।

जावा 1.5 और जावा 1.6 ने नए क्लास-फ़ाइल-स्वरूपों को पेश किया। जेवीएम पुरानी कक्षा-फाइलों को भी चलाएगा, लेकिन आपके कोड को पुन: संकलित करेगा - खासकर जेडीके 1.6 के साथ - आपके आवेदन को तेज़ी से बनाने के लिए कुछ बदलावों का लाभ उठाने के लिए नए जेवीएम की मदद करेगा। तो आप recompiling पर विचार कर सकते हैं।

इसके अतिरिक्त कुछ नए कीवर्ड पेश किए गए, अर्थात् जोर से (1.4 में) और enum (1.5 में) (जैसा कि युवाल पहले से ही उल्लेख किया गया है)। यदि आप इन शब्दों को पहचानकर्ता के रूप में उपयोग करते हैं, तो एक पुनर्मूल्यांकन विफल हो जाएगा, लेकिन पुरानी कक्षा-फ़ाइलें काम करेगी। आप स्विच -source को javac में संकलित करने के लिए स्विच प्रदान कर सकते हैं: ' javac -ource 1.3 ' कोड को assert और enum एक कीवर्ड के रूप में।

0
जोड़ा

मेरा अनुभव यह है कि संगतता काफी अधिक है। मुझे केवल एक ऐप मिला है कि मैं वर्तमान संस्करण पर नहीं चल सका। किसी भी कारण से (स्रोत नहीं है, इसलिए मैंने इसमें खोद नहीं लिया) कि एक ऐप 1.4.2 के अलावा किसी अन्य चीज़ पर नहीं चलेगा। बाकी सब कुछ मैंने कभी निपटाया है (उनमें से कुछ काफी बड़े हैं) 1.6 तक ठीक हैं। कोई संशोधन आवश्यक है।

निश्चित रूप से वाईएमएमवी, तो आपको इसे आजमाकर देखना होगा ...

0
जोड़ा

आम तौर पर, सूर्य के जेवीएम की पिछली संगतता बहुत अच्छी है, लेकिन सही नहीं है। मैंने तीन बहुत बड़े अनुप्रयोगों को 1.3 से 1.5 तक माइग्रेट किया है और केवल थोड़ी सी समस्याओं का सामना करना पड़ता है, जिनमें से सबसे बड़ा एक स्विंग मास्क एक अंतहीन घटना हैंडलिंग लूप में जा रहा है और 1.4 के तहत ऐप को फ्रीज कर रहा है

सर्वर भाग में समस्याएं पैदा होने की संभावना नहीं है, लेकिन स्विंग में विशेष रूप से 1.3 और 1.4 के बीच बहुत बड़े अंडर-द-हूड परिवर्तन हुए हैं - उदाहरण के लिए फोकस सबसिस्टम पूरी तरह से लिखा गया था।

यह अभी भी संभव है कि ऐप बिना किसी समस्या के चलाएगा, लेकिन आपको निश्चित रूप से व्यापक परीक्षण करना चाहिए।

0
जोड़ा

सूर्य असंगतताओं की एक सूची रखता है जो जावा के प्रत्येक नए संस्करण के साथ पेश किए जाते हैं।

1.4.2 के लिए अंतिम दस्तावेज़ में जेडीके 1.0 पर संगतता नोट्स के लिंक हैं।

0
जोड़ा

मेरे सिर के ऊपर से, फ़ील्ड और स्थानीय चर में नाम enum और assert नाम देखें ... ये शब्द जावा 1.4 और 5 में कीवर्ड बन गए हैं। जावा 6 कंपाइलर उन्हें संकलन त्रुटियों के रूप में चिह्नित करेगा यदि यह उन्हें देखता है।

युवक = 8-)

0
जोड़ा