检测Windows或Linux?

我正试图在Windows和Linux上运行一个通用的Java程序。

程序需要在每个平台上做一些不同的事情。

那么我的Java程序怎么能/应该检测到它在Linux和Windows下运行呢?

apache commons lang有一个SystemUtils.java类可以使用:

SystemUtils.IS_OS_LINUX SystemUtils.IS_OS_WINDOWS 

有用的简单的类是由我: https : //gist.github.com/kiuz/816e24aa787c2d102dd0

 public class OSValidator { private static String OS = System.getProperty("os.name").toLowerCase(); public static void main(String[] args) { System.out.println(OS); if (isWindows()) { System.out.println("This is Windows"); } else if (isMac()) { System.out.println("This is Mac"); } else if (isUnix()) { System.out.println("This is Unix or Linux"); } else if (isSolaris()) { System.out.println("This is Solaris"); } else { System.out.println("Your OS is not support!!"); } } public static boolean isWindows() { return (OS.indexOf("win") >= 0); } public static boolean isMac() { return (OS.indexOf("mac") >= 0); } public static boolean isUnix() { return (OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0 ); } public static boolean isSolaris() { return (OS.indexOf("sunos") >= 0); } public static String getOS(){ if (isWindows()) { return "win"; } else if (isMac()) { return "osx"; } else if (isUnix()) { return "uni"; } else if (isSolaris()) { return "sol"; } else { return "err"; } } } 

我认为这是使用Apache lang依赖关系来决定通过Java以编程方式运行的操作系统的最佳方法

 import org.apache.commons.lang3.SystemUtils; public class App { public static void main( String[] args ) { if(SystemUtils.IS_OS_WINDOWS_7) System.out.println("It's a Windows 7 OS"); if(SystemUtils.IS_OS_WINDOWS_8) System.out.println("It's a Windows 8 OS"); if(SystemUtils.IS_OS_LINUX) System.out.println("It's a Linux OS"); if(SystemUtils.IS_OS_MAC) System.out.println("It's a MAC OS"); } } 

你可以使用“system.properties.os”,例如:

 public class GetOs { public static void main (String[] args) { String s = "name: " + System.getProperty ("os.name"); s += ", version: " + System.getProperty ("os.version"); s += ", arch: " + System.getProperty ("os.arch"); System.out.println ("OS=" + s); } } // EXAMPLE OUTPUT: OS=name: Windows 7, version: 6.1, arch: amd64 

这里有更多的细节: