2013-02-05 38 views
4

我有一个Java小程序,它需要Java版本。至少7.0.0。如何显示Java applet加载失败时的消息?

是否有任何可能性来检查applet是否无法加载并显示某些消息给用户,他需要更新他的Java软件?

我试过使用一些背景,但它只显示没有Java的地方,否则显示带有信息ClassNotFoundException的白色矩形。这里是我的HTML包括我的小程序的示例。

<div style="background-image: url('img/appletbg.png'); width: 790px; height: 900px;"> 
     <applet code="MyPackage/MainClass.class" 
         archive="applet/MyJar.jar" width="790" height="900"> 
     </applet> 
    </div> 

我知道,我可以通过JS找出安装的Java版本,但它是客户端,我更愿意表现出一些消息,而无需任何客户端交互。

+1

所以,你要知道CLIENTS版本,而客户端交互。我想你可以认为它是不可能的 –

+1

这并不能回答你的问题,但我觉得使用Java 6很有帮助。许多人没有Java 7,并且不断需要处理错误报告。 – Doorknob

+0

同意@Doorknob。您使用Java 7有什么特别的原因吗?你正在使用7特有的特定功能吗? – rmlan

回答

1

好了,我知道如何做到这一点,利用AndrewThompson建议,在使用JS不需要任何interacion 。

下面是结果我的代码,从本网站想通了:http://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/ensuringJRE.html

<script type="text/javascript" src="http://java.com/js/deployJava.js"></script> 
<script type="text/javascript"> 
    if (deployJava.versionCheck("1.7.0_0+") == false) {     
     userInput = confirm(
       "You need the latest Java(TM) Runtime Environment. " + 
       "Would you like to update now?");   
     if (userInput == true) { 
      window.location = "http://java.com/en/download/testjava.jsp"; 
     } 
    } 
    else 
    { 
     // This are just the sample parameters for now! 
     var attributes = {id:"applet", name:"TheApplet", code:"TheApplet"}; 
     var parameters = {jnlp_href: "http://localhost/TheApplet.jnlp"}; 

     deployJava.runApplet(attributes, parameters, "1.7.0_0"); 
    } 
</script> 
0

也许这是不是足够多,但在现阶段,我认为你可以使用标签苹果alt attribute

<applet code="MyPackage/MainClass.class" archive="applet/MyJar.jar" width="790" height="900" alt="alternative text"> 
</applet> 

读多一点点的文档中,你有onerror事件,也许你可以使用,但我从来没有使用它。

+1

“alt”属性仅用于在用户安装Java但已禁用时显示。当没有安装JRE或者JRE加载但在小程序中发现错误时,它不起作用。 –

+0

我一辈子都在想着alt attr在错误上起作用!谢谢! :) – NewRehtse

0

试试这个:

<SCRIPT LANGUAGE="JavaScript"> 
      error= errr; 
     function loadApplet() { 
     if (!document.applets[0].isActive) 

      alert(" Applet could not be loaded"); 
      } 

     function errr() { 
     alert("Applet could not be loaded"); 

     } 
     } 

添加loadApplet方法在身体onload事件

+0

一旦页面元素被浏览器解析,'onload'事件通常会被调用。有了[新的安全环境](http://stackoverflow.com/q/14659057/418556),它很可能会在用户授权对话框之前被解雇,甚至可能会被解雇。相反,有必要在一定的时间内循环检查。 –

相关问题