我正在开发一个复杂的Java applet,它在Safari和Windows和Linux上的各种浏览器中运行良好,但在Chrome和Firefox中的Macintosh上存在问题。对于调试,如果有错误,Java代码可以检测并报告浏览器,浏览器版本,操作系统和操作系统版本,这将非常有用。
Java检测该信息的最简单,最可靠的方法是什么?
这看起来不错,但需要Apache log4j,我不知道我是否可以说服团队运行:http://code.google.com/p/user-agent-utils/'
我猜Java可以通过JavaScript获取用户代理字符串,但我找不到任何能够清楚地显示如何执行此操作的良好示例代码。
答案 0 :(得分: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和操作系统。无论如何,您可以让服务器端编程语言从当前请求标头中获取它,并将其作为<object>
或<applet>
参数传递给applet。这是使用JSP / EL的示例:
<param name="userAgent" value="${header['user-agent']}" />
并在applet中获取它,如下所示:
String userAgent = getParameter("userAgent");
一旦掌握了用户代理字符串,您可能会发现http://user-agent-string.info的网络服务比Google代码中的用户代理工具更有用。
答案 1 :(得分:0)
如果使用JavaScript,请使用以下代码检测客户端的浏览器和操作系统。
<p id="demo5"></p>
<script>
document.getElementById("demo5").innerHTML = "<span>your Browser is: <br> </span> " + navigator.userAgent;
</script>
<p id="demo66"></p>
<script>
document.getElementById("demo66").innerHTML = "<span>your oscpu (Operating System | CPU) is: </span> " + navigator.oscpu;
</script>