我想确定我的Java程序正在以编程方式运行的主机的操作系统(例如:我想能够根据我是否在Windows或Unix平台上加载不同的属性)。以100%的可靠性做到这一点最安全的方法是什么?
我建议将其缓存在一个静态变量中:
public static final class OsUtils
{
private static String OS = null;
public static String getOsName()
{
if(OS == null) { OS = System.getProperty("os.name"); }
return OS;
}
public static boolean isWindows()
{
return getOsName().startsWith("Windows");
}
public static boolean isUnix() // and so on
}
你可以使用:
System.getProperty("os.name")
PS你可能会发现这个代码有用:
class ShowProperties {
public static void main(String[] args) {
System.getProperties().list(System.out);
}
}
它所做的只是打印出Java实现提供的所有属性。它会给你一个你可以通过属性找到Java环境的想法。:-)