बिल्कुल नहीं।
JEP 247: पुराने प्लेटफ़ॉर्म संस्करणों के लिए संकलन इस नए कमांड-लाइन विकल्प को परिभाषित करता है--release
:
हमने एक नए कमांड-लाइन विकल्प को परिभाषित किया है --release
, जो स्वचालित रूप से कंपाइलर को क्लास फ़ाइलों का उत्पादन करने के लिए कॉन्फ़िगर करता है जो दिए गए प्लेटफ़ॉर्म संस्करण के कार्यान्वयन के खिलाफ लिंक करेगा। पूर्वनिर्धारित प्लेटफार्मों के लिए javac
, --release N
के बराबर है-source N -target N -bootclasspath <bootclasspath-from-N>
। (जोर मेरा)
तो नहीं, यह नहीं के बराबर है -source N -target N
। इस जोड़ का कारण "प्रेरणा" खंड में बताया गया है:
javac
दो कमांड लाइन विकल्प प्रदान करता है, -source
और -target
, जिसे कंपाइलर द्वारा स्वीकार की गई जावा भाषा के संस्करण और उसके द्वारा निर्मित वर्ग फ़ाइलों के संस्करण का चयन करने के लिए उपयोग किया जा सकता है। डिफ़ॉल्ट रूप से, हालांकि, javac
प्लेटफ़ॉर्म एपीआई के सबसे हाल के संस्करण के खिलाफ संकलन करता है। संकलित कार्यक्रम इसलिए गलती से प्लेटफॉर्म के वर्तमान संस्करण में केवल उपलब्ध एपीआई का उपयोग कर सकता है। इस तरह के कार्यक्रम प्लेटफॉर्म के पुराने संस्करणों पर नहीं चल सकते हैं, भले ही मूल्यों को पारित किया गया हो -source
और -target
। विकल्प। यह एक दीर्घकालिक प्रयोज्य दर्द बिंदु है, क्योंकि उपयोगकर्ता उम्मीद करते हैं कि इन विकल्पों का उपयोग करके उन्हें कक्षा की फाइलें मिलेंगी जो निर्दिष्ट प्लेटफ़ॉर्म संस्करण पर चल सकती हैं।
संक्षेप में, स्रोत और लक्ष्य विकल्पों को निर्दिष्ट करना क्रॉस-संकलन के लिए पर्याप्त नहीं है। क्योंकि javac
, डिफ़ॉल्ट रूप से, प्लेटफ़ॉर्म एपीआई के सबसे हाल के संकलनों के खिलाफ, उन्हें पुराने संस्करणों पर चलने की गारंटी नहीं दी जा सकती है। आपको -bootclasspath
पुराने संस्करण के अनुरूप विकल्प को भी सही ढंग से क्रॉस-कंपाइल करने की आवश्यकता है। इसमें पुराने एपीआई को संकलित करने और पुराने संस्करण पर निष्पादन की अनुमति देने के लिए सही एपीआई संस्करण शामिल होगा। चूंकि यह बहुत बार भुला दिया गया था, इसलिए एक कमांड लाइन विकल्प को जोड़ने का निर्णय लिया गया, जिसने सभी आवश्यक चीजों को सही ढंग से क्रॉस-कंपाइल किया।
मेलिंग सूची और ओरेकल डॉक्स में आगे पढ़ना । मूल बग यहां दायर किया गया था । ध्यान दें कि इस विकल्प के एकीकरण के बाद से, JDK बिल्ड में पुराने रिलीज के प्लेटफ़ॉर्म एपीआई के विवरण के साथ बंडल हो गए हैं, जिसका उल्लेख अनुभाग "जोखिम और मान्यताओं" के तहत किया गया है। इसका मतलब है कि आपको काम करने के लिए क्रॉस-संकलन के लिए अपनी मशीन पर स्थापित पुराने संस्करण की आवश्यकता नहीं है।