如何在Java applet中检测浏览器和操作系统

时间:2010-11-07 22:55:45

标签: java applet browser-detection

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

Java检测该信息的最简单,最可靠的方法是什么?

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

我猜Java可以通过JavaScript获取用户代理字符串,但我找不到任何能够清楚地显示如何执行此操作的良好示例代码。

2 个答案:

答案 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>