如何从ASP .NET网站检测客户端上安装的Java运行时?

我有一个托管Java applet的ASP .NET网站。 Java applet需要Java运行时的1.6版Update 11。

如何检测客户端是否安装了适当的运行时,以便我可以显示信息性消息?

谢谢,

卡尔。

编辑:解决方案必须是平台独立的。

此页面描述了如何并列出了一些允许您使用JavaScript检测Java的插件: http : //www.pinlady.net/PluginDetect/JavaDetect.htm

除此之外,请尝试以下代码段:

if (navigator.javaEnabled()) { //Java is enabled } 

以下链接详细介绍了Java应用程序的部署提示。

http://java.sun.com/javase/6/docs/technotes/guides/jweb/deployment_advice.html

引用链接

部署工具包为了避免浏览器兼容性问题,Deployment Toolkit( deployJava.js )提供了自动生成部署applet和Java Web Start应用程序所需的HTML的JavaScript函数。 开发人员应调用这些function,以便在各种浏览器中以一致的方式部署他们的解决方案。

我的方法是使用JavaScript navigator.javaEnabled()来检查是否有可用的Java版本。

然后,您可以在Java applet本身中使用System.getProperty("java.version") 。 这应该足以为您提供版本信息,例如1.6.0_03

虽然到目前为止大多数答案都是围绕用户代理(浏览器)本身的检测,但听起来就像你提到ASP.NET一样,你希望在服务器端进行这种检测。 如果是这样,你有几个选择。

首先,您可以嗅探来自用户代理的HTTP请求标头。 安装了Java的计算机和浏览器通常会包含一个标题,向您提供可以接收的服务器的提示。 以下是此方法的一些有用链接: http : //www.developershome.com/wap/detection/ https://metacpan.org/pod/HTTP::Browscap

您拥有的另一个选项是向用户代理发送javascript以使用此问题中其他答案中的一种技术执行检测,然后使用ajax回调告诉服务器您发现了什么。

如果您不介意使用需要运行较旧版本的基本Java小程序,则可以使用本文并根据该结果继续。

也许这个脚本会有所帮助。 但这只是Windows版本。

  

如果解决方案必须与平台无关。 我将排除javascript提供的所有解决方案。

您可以编写一个非常简单的Applet,它由古老的Classic VM支持。 让applet检测JRE版本,并显示消息。

如果您接受Javascript,您可能也会对本文感兴趣, 这篇文章是关于WebStart应用程序的自动安装程序。

  1. 使用deployJava.js函数getJREs()根据用户的Java版本构建动态页面。

  2. 使用http://cowwoc.blogspot.com/2008/12/tracking-java-versions-using-google.html跟踪使用Google Analytics的网络访问者使用的Java版本。

  3. 奖励步骤:使用步骤2中的源代码作为如何实施步骤1的示例。

只需复制amd就可以在浏览器地址栏中粘贴此代码! 检查它是否对您有用。

 javascript: for(i = 0; i < navigator.plugins.length; i++) alert(navigator.plugins[i].name); 

您需要在插件数组中获取Java的位置,也许您可​​以使用正则表达式检查版本。 你可以看一下插件javascript对象。

问候!

下面的链接是我开始工作的方式。 它有一个JS,你可以得到它为Java部署。 上面提到了这个链接,但我认为它的一个例子会很好。

这些样本我最终需要解决我的问题。

http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/technotes/guides/jweb/deployment_advice.html#deplToolkit

下载deployJava.js文件后,您可以放置​​一些东西来确保安装java: if (deployJava.getJREs().length > 0) { //Your code to start java }

确保安装了特定版本: if (deployJava.versionCheck(version)) { //Your version specific code }

启动最新Java的安装程序: deployJava.installLatestJava();

或者如果您愿意,可以使用特定版本: deployJava.installJRE(version);

复制并粘贴到浏览器地址栏中以检查:

JavaScript的:警报(navigator.javaEnabled())

适用于Mozilla(FF3)和IE7。 (x64)的