首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Java或JavaScript进行操作系统检测

问用Java或JavaScript进行操作系统检测
EN

Stack Overflow用户
提问于 2010-11-11 21:46:15
回答 3查看 5.7K关注 0票数 1

我需要检测Java中的操作系统名称和版本。我能做到的是

代码语言:javascript
复制
String os_name = System.getProperty("os.name", "");
String os_version = System.getProperty("os.version", "");

但问题是,这并不可靠。有时它返回不正确的信息,我不能检测到所有的操作系统,除了最流行的Windows、MacOS、Linux等,这甚至在64位操作系统的情况下提供了错误的信息。我需要检测任何一种规格的操作系统。我找不到正确的解决方案。

也许我可以用JavaScript做到这一点?如果这在Java是不可能的,那么请告诉我如何用JavaScript来做。

任何意见或建议都是非常感谢的。

提前谢谢。

诚挚的问候,

**Nilanjan Chakraborty

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-11 21:52:58

在Java中,在猜测操作系统时有一些常见的错误:

http://bugs.sun.com/view_bug.do?bug_id=6819886

也许在较新版本的Java中,这些问题已经得到了解决。

在Javascript中,你可以使用navigator.appVersion:

代码语言:javascript
复制
// 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);
票数 8
EN

Stack Overflow用户

发布于 2010-11-11 22:48:10

我熟悉的所有浏览器都从导航器对象(Javascript)报告操作系统-

代码语言:javascript
复制
alert(navigator.platform)//returns string- eg'Win64'
票数 3
EN

Stack Overflow用户

发布于 2010-11-11 22:01:24

没有太多方法可以检测到这一点。它很可能会在99%的时间内正确工作。

然而,如果你正在寻找另一种方法,你可以考虑检查一些神奇的文件路径。即:

  • 如果/etc或/proc文件夹存在,则为Linux
  • 如果存在C:\Windows\,则为Linux

然而,它们将不再可靠,因为/etc /proc可能也存在于Mac中。

如果你想找到操作系统的确切名称,你可以查看Unix-Linux-Mac中的/etc/issue文件,你可以使用"os.name“(你声称它不准确)或WMI (windows管理工具)来检索操作系统name+version。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4155032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档