我需要检测Java中的操作系统名称和版本。我能做到的是
String os_name = System.getProperty("os.name", "");
String os_version = System.getProperty("os.version", "");但问题是,这并不可靠。有时它返回不正确的信息,我不能检测到所有的操作系统,除了最流行的Windows、MacOS、Linux等,这甚至在64位操作系统的情况下提供了错误的信息。我需要检测任何一种规格的操作系统。我找不到正确的解决方案。
也许我可以用JavaScript做到这一点?如果这在Java是不可能的,那么请告诉我如何用JavaScript来做。
任何意见或建议都是非常感谢的。
提前谢谢。
诚挚的问候,
**Nilanjan Chakraborty
发布于 2010-11-11 21:52:58
在Java中,在猜测操作系统时有一些常见的错误:
http://bugs.sun.com/view_bug.do?bug_id=6819886
也许在较新版本的Java中,这些问题已经得到了解决。
在Javascript中,你可以使用navigator.appVersion:
// This script sets OSName variable as follows:
// "Windows" for all versions of Windows
// "MacOS" for all versions of Macintosh OS
// "Linux" for all versions of Linux
// "UNIX" for all other UNIX flavors
// "Unknown OS" indicates failure to detect the OS
var OSName="Unknown OS";
if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";
document.write('Your OS: '+OSName);发布于 2010-11-11 22:48:10
我熟悉的所有浏览器都从导航器对象(Javascript)报告操作系统-
alert(navigator.platform)//returns string- eg'Win64'发布于 2010-11-11 22:01:24
没有太多方法可以检测到这一点。它很可能会在99%的时间内正确工作。
然而,如果你正在寻找另一种方法,你可以考虑检查一些神奇的文件路径。即:
/etc或/proc文件夹存在,则为LinuxC:\Windows\,则为Linux然而,它们将不再可靠,因为/etc /proc可能也存在于Mac中。
如果你想找到操作系统的确切名称,你可以查看Unix-Linux-Mac中的/etc/issue文件,你可以使用"os.name“(你声称它不准确)或WMI (windows管理工具)来检索操作系统name+version。
https://stackoverflow.com/questions/4155032
复制相似问题