我的基于 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/