অথবা আপনি ওসনেমকে স্ট্রিং হিসাবে সংজ্ঞায়িত করতে পারেন ...
import org.gradle.internal.os.OperatingSystem
switch (OperatingSystem.current()) {
case OperatingSystem.LINUX:
project.ext.osName = "Linux";
break;
case OperatingSystem.MAC_OS:
project.ext.osName = "macOS";
break;
case OperatingSystem.WINDOWS:
project.ext.osName = "Windows";
break;
}
... এবং এটি পরে ব্যবহার করুন - একটি নেটিভ লাইব্রেরি অন্তর্ভুক্ত করার জন্য:
run {
systemProperty "java.library.path", "lib/$osName"
}
অপারেটিং সিস্টেমটি আপনার কোডের মতো কাজ করে বলে এটি কোনও পরিবর্তন করতে পারে না:
public static OperatingSystem forName(String os) {
String osName = os.toLowerCase();
if (osName.contains("Windows")) {
return WINDOWS;
} else if (osName.contains("mac os x") || osName.contains("darwin") || osName.contains("osx")) {
return MAC_OS;
} else if (osName.contains("sunos") || osName.contains("solaris")) {
return SOLARIS;
} else if (osName.contains("linux")) {
return LINUX;
} else if (osName.contains("freebsd")) {
return FREE_BSD;
} else {
// Not strictly true
return UNIX;
}
}
সূত্র: https://github.com/gradle/gradle/blob/master/subprojects/base-services/src/main/java/org/gradle/ আন্তঃ / os / অপারেটিংসিস্টেম.জভা
সম্পাদনা করুন:
আপনি স্থাপত্যের জন্য একই কাজ করতে পারেন:
project.ext.osArch = OperatingSystem.current().getArch();
if ("x86".equals(project.ext.osArch)) {
project.ext.osArch = "i386";
}
এবং:
run {
systemProperty "java.library.path", "lib/$osName/$osArch"
}
শুধু সচেতন হন যে getArch () ফিরে আসবে:
- পাওয়ারপিসিতে "পিপিসি"
- "amd64" 64 বি তে
- "আই 386" বা "এক্স 86" 32 বি তে।
getArch () সোলারিসে "x86" বা অন্য কোনও প্ল্যাটফর্মের জন্য "i386" ফেরত দেবে।
সম্পাদনা 2:
বা আপনি যদি কোনও আমদানি এড়াতে চান তবে আপনি কেবল নিজেরাই এটি করতে পারেন:
def getOsName(project) {
final String osName = System.getProperty("os.name").toLowerCase();
if (osName.contains("linux")) {
return ("linux");
} else if (osName.contains("mac os x") || osName.contains("darwin") || osName.contains("osx")) {
return ("macos");
} else if (osName.contains("windows")) {
return ("windows");
} else if (osName.contains("sunos") || osName.contains("solaris")) {
return ("solaris");
} else if (osName.contains("freebsd")) {
return ("freebsd");
}
return ("unix");
}
def getOsArch(project) {
final String osArch = System.getProperty("os.arch");
if ("x86".equals(osArch)) {
return ("i386");
}
else if ("x86_64".equals(osArch)) {
return ("amd64");
}
else if ("powerpc".equals(osArch)) {
return ("ppc");
}
return (osArch);
}
toLowerCase().contains()
অংশটি ছাড়াই আমি যা ব্যবহার করি, কেবলমাত্র নামটিই আমার দরকার।