好吧,我知道System.getProperty("os.name")
会给我提供我正在运行的操作系统的名称,但这不会有太多帮助。我需要知道的是,如果我运行的操作系统是“类Unix”操作系统,我并不关心它是HP-UX、AIX、Mac还是其他什么。
从list of possible os.name values上看,检测“类Unix”操作系统的一种快捷方法是检查os.name
是否包含“”而不是“”。给我的误报是OSes,我的代码不太可能遇到!尽管如此,如果有更好的方法,我很想知道。
发布于 2010-07-19 23:43:09
我已经在Windows XP、Vista、Win7、MacOS10.3- 10.6和各种Linux发行版上使用了您的方案,没有出现任何问题:
if (System.getProperty("os.name").startsWith("Windows")) {
// includes: Windows 2000, Windows 95, Windows 98, Windows NT, Windows Vista, Windows XP
} else {
// everything else
}
本质上,检测类Unix是通过而不是检测Windows。
发布于 2010-07-19 23:44:15
Javadoc说:在UNIX系统上,这个*字段的值是'/'
;在Microsoft Windows系统上,它是'\'
。
System.out.println( File.separatorChar == '/' ? "Unix" : "Windows" );
发布于 2010-07-19 23:34:02
System.getProperty("os.name");
大概是你能得到的最好的了。
https://stackoverflow.com/questions/3282498
复制相似问题