2

我正在开发一个复杂的 Java 小程序,它在 Safari 和 Windows 和 Linux 上的各种浏览器中运行良好,但在 Chrome 和 Firefox 中的 Macintosh 上存在问题。对于调试来说,如果 Java 代码能够检测并报告浏览器、浏览器版本、操作系统以及出现错误时的操作系统版本,那将非常有帮助。

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

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

我猜 Java 可以通过 JavaScript 获取用户代理字符串,但是我找不到任何好的示例代码来清楚地展示如何做到这一点。

4

2 回答 2

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().

用户代理字符串不太相关。毕竟是相同的 JVM 和操作系统。无论如何,您可以让服务器端编程语言从当前请求标头中获取它,并将其作为<object><applet>参数传递给小程序。下面是一个使用 JSP/EL 的示例:

<param name="userAgent" value="${header['user-agent']}" />

并在小程序中获取如下:

String userAgent = getParameter("userAgent");

一旦有了用户代理字符串,您可能会发现http://user-agent-string.info上的网络服务比 Google Code 中的用户代理实用程序更有用。

于 2010-11-07T23:14:27.517 回答
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>

于 2020-10-23T02:28:11.037 回答