मैं जेडीके 9 का उपयोग करके एक परियोजना बनाने की कोशिश कर रहा हूं, --release
का उपयोग जावा के लिए तर्क का मतलब है कि यह संबंधित जेडीके/जेआरई स्थापित किए बिना पुराने संस्करणों के लिए बना सकता है। मुझे जावा 6 का समर्थन करने की आवश्यकता है, इसलिए मेरे पूर्ववर्ती सेट अप को बूटस्ट्रैप क्लासपाथ के लिए जावा 6 और ग्रेडल और आईडीई के लिए एक और जेडीके 8 या 9 की आवश्यकता है। मैं सिर्फ 9 का उपयोग करने के पक्ष में जेडीके 6 को खत्म करना चाहता हूं, और कुछ हद तक निर्माण को साफ करता हूं।जावा 9 के साथ जावा 6 को लक्षित करना जेडीके चेतावनी देता है
मेरा नया build.gradle निम्नलिखित विन्यास है:
tasks.withType(JavaCompile) {
options.compilerArgs.addAll(['--release', '6', "-Xlint"])
}
sourceCompatibility
, targetCompatibility
और bootstrapClasspath
विकल्प सेट नहीं कर रहे हैं, के रूप में मैं समझता हूँ --release
तर्क अब इस संभालती है।
मैं निम्नलिखित चेतावनी मिलती है:
warning: [options] source value 1.6 is obsolete and will be removed in a future release
warning: [options] target value 1.6 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
मैं जानता हूँ कि इन (यह यह सही वहाँ कहते हैं) को दबा दिया जा सकता है, लेकिन मैं उन्हें देखने के लिए उम्मीद नहीं थी। --release [7-9]
के साथ इमारत करते समय ये चेतावनियां मौजूद नहीं हैं।
sourceCompatibility = "1.6"
targetCompatibility = "1.6"
tasks.withType(JavaCompile) {
options.bootstrapClasspath = new SimpleFileCollection(Arrays.asList(new File("$JDK6_HOME/jre/lib/rt.jar")))
}
मैं संकलक तर्क गलत तरीके से स्थापित करने हूँ:
संदर्भ के लिए, इस वर्ष (अप्रयुक्त अब) '2x JDK' config है? क्या source
और target
सेट/अनसेट करने का कोई तरीका है?
में कहा गया है यह सिर्फ चेतावनी दी है कि लक्षित कर Java6 JDK8 की नई रिलीज के साथ काम करना बंद कर सकता है/9 + और इससे कोई फर्क नहीं पड़ता कि आप 'स्रोत' और 'लक्ष्य' या नया '--release' का उपयोग करते हैं। – user158037
- मूल रूप से -सोर्स-टार्गेट -बूटक्लासपाथ के लिए मूल रूप से लघुरूप है, यह हो सकता है कि यह उन झंडे को हुड के नीचे उपयोग करता है या उन्हें सिमिलियर के रूप में देखता है। इसलिए चेतावनियां। – trappski
@ user158037 यह जावा 7 के लिए चेतावनी क्यों नहीं देगा? – Sam