首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定给定的操作系统名称是基于服务器还是基于桌面

确定给定的操作系统名称是基于服务器还是基于桌面
EN

Stack Overflow用户
提问于 2018-02-23 15:34:41
回答 2查看 85关注 0票数 1

我的基于java的应用程序安装在许多用户的计算机上。在第一次运行时,它会自动将用户的操作系统名称发送到我的服务器并存储在数据库中。我使用System.getProperty("os.name");在该应用程序中获取用户的操作系统名称。能否确定这是一台基于服务器的计算机( Windows Server 2012 Standard)还是台式计算机(Ubuntu、Windows 7)?

是否有任何可能的方法来确定使用Java的服务器和台式计算机之间的关系?

EN

回答 2

Stack Overflow用户

发布于 2018-02-23 15:45:23

我在基于Java的web应用程序中使用System.getProperty("os.name");来获取用户的操作系统名称。

这将为您提供运行web应用程序的服务器的操作系统名称,而不是用户的计算机。

您可以尝试从浏览器的User-Agent头中提取操作系统信息,但这本质上是一个容易出错的过程。此外,Microsoft Windows是唯一一个与您正在寻找的服务器/桌面有明确区别的操作系统;Linux和macOS没有这样的区别。

票数 3
EN

Stack Overflow用户

发布于 2018-02-23 18:06:57

是否有任何可能的方法来确定服务器和使用Java的台式计算机之间的关系?

(假设您可以获得相关计算机的"os.name“属性的值。)

答案是没有一种可靠的方法。

首先,服务器和台式计算机之间没有明显的区别。我可以安装Linux的无头服务器,只需安装几个包就可以将其转换为桌面Linux。操作系统不会改变,分布不会改变,"os.name“属性中的字符串也不会改变。

您能做的最好的事情就是在各种常见的 Java + OS平台上找出"os.name“字符串的通用模式。但这充其量也是脆弱的。

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

https://stackoverflow.com/questions/48943187

复制
相关文章

相似问题

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