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

标签 java server operating-system

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

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

最佳答案

I use System.getProperty("os.name"); in a Java based web application to get the user's Operating System name.

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

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

关于java - 确定给定的操作系统名称是基于服务器还是基于桌面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48943187/

相关文章:

c# - 服务器和 Unity 应用程序之间的通信

java - 无法在 ReSTLet Web 服务的 http 响应 header 中设置状态原因

Java 日历不改变值

java - 移 Action 为 Web 服务器 HTML

mysql - 无法从我的 ubuntu 服务器连接到 mysql 数据库

linux - AWS EC2 : Migrating from Windows to Linux Server

c - 不同内核上的多个线程读取同一组文件

c - SYSCALL() 在 Linux 中在哪里实现?

python - 如何一一获取目录下的文件名?

java - 如何对釉面TreeList进行排序?