2020 के मध्य अद्यतन : फिर भी ऊष्मायन:
OperatingSystem os = org.gradle.nativeplatform.platform.internal.DefaultNativePlatform.currentOperatingSystem;
2019 की शुरुआत अपडेट : current()हटा दी गई।
org.gradle.nativeplatform.platform.OperatingSystem.getDisplayName()
org.gradle.nativeplatform.platform.OperatingSystem.isLinux()
ध्यान रखें कि यह अभी भी ऊष्मायन कर रहा है।
मध्य 2018 अपडेट : जैसे टिप्पणियों में उल्लेख किया गया था, अब यह वर्ग एक अलग पैकेज में चला गया, इसलिए किसी को उपयोग करना चाहिएorg.gradle.nativeplatform.platform.OperatingSystem.current()
2015 के मध्य तक, पीटर कान का जवाब अभी भी मान्य है। पर्यावरण आधारित प्रोफ़ाइल सक्रियण अभी भी मावेन में अपेक्षाकृत आसान है। लेकिन ध्यान रखें कि org.apache.tools.ant.taskdefs.condition.Os.isFamilyइस अर्थ में अनन्य नहीं है कि अगर यह एक विशेष पैरामीटर के साथ सच हो जाता है, तो जरूरी नहीं कि इसका मतलब यह है कि यह किसी अन्य पैरामीटर के लिए गलत है। उदाहरण के लिए:
import org.apache.tools.ant.taskdefs.condition.Os
task detect {
doLast {
println(Os.isFamily(Os.FAMILY_WINDOWS))
println(Os.isFamily(Os.FAMILY_MAC))
println(Os.isFamily(Os.FAMILY_UNIX))
}
}
यह दोनों के लिए Os.FAMILY_MACऔर Os.FAMILY_UNIXMacOS पर सही लौटेगा । आमतौर पर यह कुछ ऐसा नहीं होता है जिसकी आपको स्क्रिप्ट बनाने की जरूरत होती है।
हालांकि, ग्रेड 2+ एपीआई का उपयोग करके इसे प्राप्त करने का एक और तरीका है, अर्थात्:
import org.gradle.internal.os.OperatingSystem;
task detect {
doLast {
println(OperatingSystem.current().isMacOsX())
println(OperatingSystem.current().isLinux())
}
}
Org.gradle.nativeplatform.platform.peratingSystem इंटरफ़ेस के लिए दस्तावेज़ देखें । यह उल्लेख के लायक है कि इस इंटरफ़ेस को इनक्यूबेटिंग एनोटेशन के साथ चिह्नित किया गया है , अर्थात "यह सुविधा वर्तमान में एक कार्य-प्रगति है और किसी भी समय बदल सकती है"। कार्यान्वयन में "आंतरिक" नाम स्थान भी हमें एक संकेत देता है कि हमें यह जानने का उपयोग करना चाहिए कि यह बदल सकता है।
लेकिन व्यक्तिगत रूप से मैं इस समाधान के साथ जाना होगा। यह सिर्फ इतना है कि एक रैपर क्लास लिखना बेहतर है, ताकि भविष्य में कुछ गड़बड़ न हो।
toLowerCase().contains()भाग के बिना, मैं क्या उपयोग करता हूं, जैसा कि मुझे सिर्फ नाम की आवश्यकता है।