如何在Java小应用程序中检测浏览器和操作系统
问题描述:
我正在研究一个复杂的Java小程序,它可以在Safari和Windows和Linux上的各种浏览器中正常运行,但在Chrome和Firefox中Macintosh上存在问题。对于调试,如果Java代码在出现错误时可以检测并报告浏览器,浏览器版本,操作系统和操作系统版本,这将非常有用。如何在Java小应用程序中检测浏览器和操作系统
什么是Java最简单和最可靠的方式来检测该信息?
这看起来不错,但需要Apache log4j的,我不知道如果我能说服团队来运行:http://code.google.com/p/user-agent-utils/'
我猜的Java能得到通过JavaScript的用户代理字符串,但我找不到任何可以清楚显示如何做到的示例代码。
答
您可以通过System#getProperty()
获得必要的操作系统信息如下:
String osName = System.getProperty("os.name");
String osVersion = System.getProperty("os.version");
String osArch = System.getProperty("os.arch");
String javaRuntimeVersion = System.getProperty("java.runtime.version");
对于其他人,检查System#getProperties()
的Javadoc。
用户代理字符串不那么相关。它毕竟是相同的JVM和OS。无论如何,您可以让服务器端编程语言从当前的请求标头获取它,并将其作为参数<object>
或<applet>
传递给小程序。这是一个使用JSP/EL的例子:
<param name="userAgent" value="${header['user-agent']}" />
,并获得它的小程序如下:
String userAgent = getParameter("userAgent");
曾经有一次在手的用户代理字符串,你可以在http://user-agent-string.info比更为有用找到Web服务用户代理utils在谷歌代码。
仅供参考:如果您使用的是32位IE“os.arch”,即使在64位系统上也会为您提供“x86” – Makatun 2015-07-24 21:21:53