2013-02-05 75 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),它很可能會在用戶授權對話框之前被解僱,甚至可能會被解僱。相反,有必要在一定的時間內循環檢查。 –

相關問題