是否有一个简单的解决方案来获取使用php在用户工作站上运行的Java版本?基本上我想知道在访问我的门户网站的用户机器上运行的Java版本。由于我们的产品是基于Java的,因此这些数据将帮助我做出一些政策决定。
答案 0 :(得分:6)
唯一能够(直接)访问客户端(确定信息)和服务器端(发送信息)的客户端语言是JavaScript和ActionScript。
我认为你是一个已经不熟悉JavaScript的PHP程序员,所以我会继续这样做。幸运的是,Sun已经为这些需求提供了Java Deployment Toolkit JavaScript库。这是一个SSCCE,只是复制'n'paste'n'run它:
<!doctype html>
<html lang="en">
<head>
<title>SO question 2111383</title>
<script type="text/javascript" src="http://java.com/js/deployJava.js"></script>
<script type="text/javascript">
alert(deployJava.getJREs()); // Show all installed JRE versions.
</script>
</head>
<body>
<h1>That's all, Folks!</h1>
</body>
</html>
获得信息后,只需将其发送到服务器端即可。您可以通过将其作为表单的隐藏输入元素传递,或使用Ajaxical技术异步地同步执行此操作。 jQuery非常适合这一点。只需做一个$.get('script.php?java=' + deployJava.getJREs());
左右。
答案 1 :(得分:1)
检查javatester.org他们使用一个小程序来获取正在运行的JVM版本。您可以修改它以将结果推送到服务器。
答案 2 :(得分:1)
如果Java正在运行,只需调用服务器上的脚本,User-Agent就会为您提供运行时环境的确切版本。由于部署工具包javascript-code仅列出了最多17个发布版本的Java 6 ...及更早版本,您将不得不猜测特定浏览器使用的是什么。
答案 3 :(得分:0)
他们的客户需要明确地向您发送此信息。如果他们通过网络浏览器访问您的网站,那就不会出现在用户代理字符串中。
另一方面,如果他们以编程方式使用Java代码访问您的站点,那么它将显示在用户代理字符串中。但鉴于您对产品的陈述,我倾向于认为这只是一个用于浏览器访问的普通网站。
答案 4 :(得分:0)
browser_get()
函数将尝试告诉您Java applet的执行是否可用。
仅凭PHP,我相信这是你最好的选择。