यह जावा के पुराने संस्करण के साथ काम कर रहे एक जार फ़ाइल का उत्पादन करने के लिए अधिकतर उपयोगी है। मेरा मानना है कि अब तक सभी जेडीके पुराने संस्करण को निष्पादित करने में सक्षम हैं, इसलिए स्रोत से बड़ा लक्ष्य रखने का कोई वास्तविक कारण नहीं है।
हालांकि यह target
को उदाहरण के लिए सेट करने के लिए समझ में आता है 1.6 1.7 जेडीके का उपयोग करते समय।
मुझे यकीन है कि नहीं कर रहा हूँ, लेकिन मेरा मानना है कि यह इस तरह
ArrayList<Integer> foo = new ArrayList<>();
के रूप में है कि केवल मान्य हैं, एक 1.6 जार करने के लिए एक 1.7 संकलक का उपयोग कर एक 1.7 जावा कोड को संकलित करने के कुछ स्थितियों में काम कर सकता था उदाहरण के भाव के लिए 1.7+ स्रोत संस्करण में 1.6 संगत बाइट कोड को संकलित करना चाहिए। लेकिन मैंने यह सत्यापित नहीं किया है कि संकलक वास्तव में ऐसा करेगा या नहीं। दुर्भाग्य से, यह अभ्यास में लागू नहीं प्रतीत होता है।
स्रोत
2012-05-19 08:25:35
ध्यान दें कि मुझे पता चला है कि 'जावैक' सभी संयोजनों का समर्थन नहीं करता है। इसके अलावा मेरे पास वास्तव में एक उपयोग-मामला है। जावा 6 जेएक्स-डब्ल्यूएस में बनाया गया है, इसलिए मैं अतिरिक्त पुस्तकालयों के बिना सादे जावा 6 पर काम करने का समाधान करना चाहता था। उस समाधान के लिए कुछ ग्राहकों को जावा 5 जेवीएम (और जेएक्स-डब्ल्यूएस को तरफ लाया गया) पर निष्पादन योग्य होने की आवश्यकता थी और '@ ओवरराइड' सिंटैक्स बदल गया था, इसलिए यह जावा 5 जावा द्वारा तुरंत संकलित नहीं किया गया था। (यह प्री-मेवेन था, आज करना आसान हो सकता है) –
यह भी देखें [-bootclasspath' जैसा कि [इस उत्तर] में वर्णित है (http://stackoverflow.com/a/10663478/418556)। –
@ स्काफमैन - * "आप ऐसा क्यों करेंगे, यह एक और मामला है ..." * - जावा टिप्पणियों की व्याख्या करने की कोशिश करता है। यदि भाषाएं ठीक से सेट नहीं की गई हैं, तो संकलन टिप्पणियों में एक अवैध चरित्र की वजह से विफल हो सकता है !!! टिप्पणियों की व्याख्या करना बंद करने के लिए संकलक को कभी-कभी कहना आसान होता है, कहें, सैकड़ों फाइलों में कॉपीराइट नोटिस को ठीक करें। – jww