বেপারটা এমন না.
জেপি 247: পুরানো প্ল্যাটফর্ম সংস্করণের জন্য সংকলন এই নতুন কমান্ড-লাইন বিকল্পটি সংজ্ঞায়িত করেছে--release
:
আমরা একটি নতুন কমান্ড-লাইন বিকল্পটি সংজ্ঞায়িত করেছি --release
, যা ক্লাস ফাইলগুলি তৈরি করতে স্বয়ংক্রিয়ভাবে সংকলকটি কনফিগার করে যা প্রদত্ত প্ল্যাটফর্ম সংস্করণের প্রয়োগের বিরুদ্ধে লিঙ্ক করে। মাধ্যম মধ্যে পূর্বনির্ধারিত javac
, --release N
সমতূল্য-source N -target N -bootclasspath <bootclasspath-from-N>
। (জোর আমার)
সুতরাং না, এটি সমতুল্য নয় -source N -target N
। এই সংযোজনের কারণটি "অনুপ্রেরণা" বিভাগে বর্ণিত হয়েছে:
javac
দুটি কমান্ড লাইন বিকল্প সরবরাহ করে -source
এবং -target
যা সংকলক দ্বারা গৃহীত জাভা ভাষার সংস্করণ এবং যথাক্রমে এটি উত্পাদিত শ্রেণীর ফাইলগুলির সংস্করণ নির্বাচন করতে ব্যবহার করা যেতে পারে। ডিফল্টরূপে, তবে javac
প্ল্যাটফর্ম API এর সাম্প্রতিকতম সংস্করণটির বিরুদ্ধে সংকলন করে comp সংকলিত প্রোগ্রামটি দুর্ঘটনাক্রমে কেবল প্ল্যাটফর্মের বর্তমান সংস্করণে উপলব্ধ API গুলি ব্যবহার করতে পারে। এই জাতীয় প্রোগ্রামগুলি প্ল্যাটফর্মের পুরানো সংস্করণগুলিতে চলতে পারে না, নির্ধারিত মানগুলি নির্বিশেষে -source
এবং -target
। বিকল্পগুলি। এটি একটি দীর্ঘমেয়াদী ব্যবহারযোগ্যতা ব্যথা পয়েন্ট, যেহেতু ব্যবহারকারীরা আশা করেন যে এই বিকল্পগুলি ব্যবহার করে তারা ক্লাস ফাইলগুলি পাবেন যা নির্দিষ্ট প্ল্যাটফর্ম সংস্করণে চলতে পারে।
সংক্ষেপে, উত্স নির্দিষ্ট করে এবং লক্ষ্য বিকল্পগুলি ক্রস সংকলনের জন্য পর্যাপ্ত নয়। কারণ javac
, ডিফল্টরূপে, প্ল্যাটফর্ম এপিআইয়ের সর্বাধিক সাম্প্রতিক সংকলন করে, তাদের পুরানো সংস্করণগুলিতে চালনার গ্যারান্টি দেওয়া যায় না can't এছাড়াও আপনি নির্দিষ্ট করতে হবে -bootclasspath
ক্রস কম্পাইল করার পুরোনো সংস্করণ সংশ্লিষ্ট সঠিকভাবে বিকল্প। পুরানো সংস্করণে এর বিরুদ্ধে সংকলন করতে এবং কার্যকর করার অনুমতি দেওয়ার জন্য এটিতে সঠিক API সংস্করণ অন্তর্ভুক্ত থাকবে। যেহেতু এটি প্রায়শই ভুলে গিয়েছিল, তাই একটি কমান্ড লাইন বিকল্প যুক্ত করার সিদ্ধান্ত নেওয়া হয়েছিল যা সঠিকভাবে ক্রস-সংকলনের জন্য প্রয়োজনীয় সমস্ত কাজ করেছিল।
মেলিং তালিকা এবং ওরাকল ডক্সে আরও পড়া । মূল বাগটি এখানে দায়ের করা হয়েছিল । নোট করুন যে এই বিকল্পটির সংহতকরণের পর থেকে, জেডিকে বিল্ডস "ঝুঁকি ও অনুমান" বিভাগের অধীনে উল্লিখিত পুরানো প্রকাশের প্ল্যাটফর্ম এপিআইয়ের বিবরণ দিয়ে বান্ডিল হয়েছে। এর অর্থ ক্রস সংকলনের কাজ করার জন্য আপনার মেশিনে পুরানো সংস্করণ ইনস্টল করার দরকার নেই।