2010-10-30 10 views
10

के साथ कोई मुझे बता सकता है कि jsr14javac का लक्ष्य विकल्प अभी भी जेडीके 7/8 के साथ उपलब्ध होगा?जावा कंपाइलर का लक्ष्य संस्करण "जेएसआर 14" जेडीके 7/8

कहो,

$ javac -source 1.5 -target jsr14 Hello.java 
+0

कौन सा सही है? "अभी भी होगा" या "अभी भी होगा"। माफ़ कीजिये। जब मैं जाग रहा हूं तो मैं अंग्रेजी नहीं बोलता। :) –

+0

क्या "jsr14" लक्ष्य संस्करण है? क्या आपका मतलब है लक्ष्य 1.4? – EJP

+0

इसे ईजेपी देखें। http://www.ibm.com/developerworks/java/library/j-jtp02277.html –

उत्तर

4

नवीनतम OpenJDK स्रोत बंडल (openjdk-7-ea-src-b130-18_feb_2011.zip) अभी भी स्रोत (langtools/src/share/classes/com/sun/tools/javac/jvm/Target.java) में ध्वज होता है, लेकिन यह समर्थित नहीं किया गया है, तो यह पर निर्भर एक बुरा विचार है।

आप इसे आवश्यकता क्यों है?

+0

क्योंकि मैं 1.5 जावा लिखता था और अपने जावा एमई एसटीबॉक्स के लिए 1.4 लक्ष्य के लिए संकलित करता था। –

+4

@Jin: मैं समर्थित लक्ष्यों में से एक का उपयोग करें और जैसे [Retroweaver] कुछ का उपयोग करेंगे (http://retroweaver.sourceforge.net/) या [Retrotranslator] (http://retrotranslator.sourceforge.net/) पोस्ट करने के लिए परिणाम न दें। –

+0

लेकिन jsr14 इस के लिए बिल्कुल सही था ... –

4

कि झंडा 1.5 के बीटा चरणों के बाद त्याग दिया गया है। यह केवल 1.5 बीटा कंपाइलर को सामान्य रूप से जेनेरिक जांच/पार्सिंग को बाईपास करने की अनुमति देने के लिए शामिल किया गया था, जबकि जेनेरिक विनिर्देश को अंतिम रूप दिया गया था। एक बार 1.5 जारी किया गया था, वह ध्वज व्यर्थ हो गया। नए कंपाइलर संस्करण इसे सामना करने में त्रुटियां नहीं दे सकते हैं, लेकिन संभवतः चुपचाप इसे अनदेखा कर देंगे।

12

हम भारी OSGi में -jsr14 उपयोग कर रहे हैं, क्योंकि यह हमें हमारे एपीआई में जेनरिक उपयोग करने के लिए, लेकिन अभी भी 1.4 वातावरण, जो अभी भी एम्बेडेड में लोकप्रिय हैं पर तैनात अनुमति देता है। दुर्भाग्य से, वे जेडीके 7 जावा 6 और 5 के साथ पिछड़े संगत नहीं हैं। Javac 1.7 जेएआर फाइलों में वास्तव में मौजूद सामान्य जानकारी को अनदेखा करता है। रन-टाइम पर सौभाग्य से कोई समस्या नहीं है क्योंकि इस जानकारी को वैसे भी अनदेखा किया जाता है। और यह के रूप में अगर यह कुछ गैर-दस्तावेजी विशेषता थी नहीं है ...

दुर्भाग्य से, मोर्चे पर लोग अक्सर लोगों की है कि सिर्फ नवीनतम और सबसे बड़ी करने के लिए अद्यतन नहीं कर सकते के लिए बहुत कम संबंध है। मान लें ओरेकल वास्तव में एम्बेडेड बाजारों की परवाह नहीं करता है।

संभावना है कि हमें अब दो जार, एम्बेडेड के लिए एक और JDK 7. बेकार के लिए एक जहाज के लिए होगा।

यह हमारे द्वारा दर्ज की गई बग रिपोर्ट है: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7078419

+0

ग्रहण पी 2 इसी कारण से jsr14 लक्ष्य का उपयोग करता है। दुर्भाग्यवश, यह सच नहीं है कि रनटाइम पर कोई समस्या नहीं है। जेएसआर 14 लक्ष्य के साथ संकलित किए गए प्रकारों पर प्रतिबिंब का उपयोग करते समय ओपनजेडीके उड़ाता है। स्प्रिंग डीएम या ब्लूप्रिंट का उपयोग करते समय यह विशेष रूप से समस्याग्रस्त है जैसा कि यहां देखा गया है: https://gist.github.com/1251497 – mpilquist

+1

मैं इस ओएसजीआई मुद्दे में भाग गया। क्या एक ओएसजीआई बग रिपोर्ट है जिसके लिए मैं मतदान कर सकता हूं? नोट: जेडीके बग रिपोर्ट के लिए संकल्प है: दोष नहीं इसे ओएसजीआई पक्ष पर तय करना होगा। – Puce

+0

मैंने यहां कोई समस्या दायर की है: https://issues.apache.org/jira/browse/FELIX-3455 कृपया इसके लिए वोट दें। – Puce

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