2010-11-07 118 views
2

我正在研究一个复杂的Java小程序,它可以在Safari和Windows和Linux上的各种浏览器中正常运行,但在Chrome和Firefox中Macintosh上存在问题。对于调试,如果Java代码在出现错误时可以检测并报告浏览器,浏览器版本,操作系统和操作系统版本,这将非常有用。如何在Java小应用程序中检测浏览器和操作系统

什么是Java最简单和最可靠的方式来检测该信息?

这看起来不错,但需要Apache log4j的,我不知道如果我能说服团队来运行:http://code.google.com/p/user-agent-utils/'

我猜的Java能得到通过JavaScript的用户代理字符串,但我找不到任何可以清楚显示如何做到的示例代码。

回答

3

您可以通过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在谷歌代码。

+0

仅供参考:如果您使用的是32位IE“os.arch”,即使在64位系统上也会为您提供“x86” – Makatun 2015-07-24 21:21:53

相关问题