4

我有一个 Java 小程序,它需要 Java 版本。至少 7.0.0。

是否有可能检查小程序是否无法加载并向用户显示他需要更新其 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 版本,但它是客户端,我更愿意在没有任何客户端交互的情况下显示一些消息。

4

3 回答 3

1

好的,我已经弄清楚了如何做到这一点,使用 AndrewThompson 的建议,使用 JS 不需要任何交互。

这是我的代码的结果,从这个网站得出: 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>
于 2013-02-05T14:43:25.160 回答
0

也许这还不够,但目前我认为您可以使用标签 apple 的alt 属性

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

在文档中阅读更多内容,您可能会使用onerror事件,但我从未使用过它。

于 2013-02-05T14:08:54.213 回答
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");

         }
        }

在正文 onload 事件中添加 loadApplet 方法

于 2013-02-05T14:22:09.510 回答