0

我已经构建了一个 java 小程序,并试图将它嵌入到我服务器上的 HTML 文件中。当我访问该页面时,小程序尝试加载,但随后因ClassNotFoundExceptionon崩溃.applet.BookingApplet.class(这是小程序的名称,小程序所在applet的包的名称在哪里。)

   <body>
    <script src ="http://java.com/js/deployJava.js"></script>
    <script>
        var attributes = {
        codebase: '/webapp/HelpSessions.jar', 

       code: '/webapp/HelpSessions.jar/applet/BookingApplet.class',
       archive: '/lib/javax.persistence.jar, /lib/javax.validation-1.0.0.GA.jar, /lib/joda-time-2.1.jar, /lib/mail.jar, /lib/mysql-connector-java-5.1.23-bin.jar',
       width: 800, 
       height: 600        
        };
        var version = "1.6"
        deployJava.runApplet(attributes, version);
        </script>
</body>

这是我第一次尝试做这样的事情,所以我确信这只是我在 HTML 中引用类文件的方式的语法错误。如果需要,我可以发布任何其他代码,但我认为它不相关,因为小程序在 AppletViewer 中运行良好。

我今晚不会睡觉,直到我让这东西运转起来……

编辑:为了简化事情,我尝试将所有内容都移到一个文件夹中,这样我就不必处理代码库了。这是它现在的样子:

<html>
<head>
    <title>Schedule a Help Session</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
    <script src ="http://java.com/js/deployJava.js"></script>
    <script>
        var attributes = {

       code: '/applet/BookingApplet.class',
       archive: '/lib/javax.persistence.jar, /lib/javax.validation-1.0.0.GA.jar, /lib/joda-time-2.1.jar, /lib/mail.jar, /lib/mysql-connector-java-5.1.23-bin.jar',
       width: 800, 
       height: 600        
        };
        var version = "1.6"
        deployJava.runApplet(attributes, version);
        </script>
</body>

我得到了相同的 ClassNotFoundException。此外,我可以在 java 控制台的详细信息中看到一个 InterruptedException,但它并没有告诉我代码中的哪个位置(如果有的话)是导致异常的。

4

1 回答 1

0

将属性更改code为“applet/BookingApplet.class”。目前您正在使用“/applet/BookingApplet.class”。

当 Java 读取 URL 时,它会将任何 '/':s 转换为 '.':s。这将使 URL “/applet/BookingApplet.class” “.applet.BookingApplet.class”。“applet/BookingApplet.class”将变为“applet.BookingApplet.class”,这是正确的。

只要记住设置codebase为指向“applet”目录所在的目录即可。

于 2013-03-17T07:58:40.093 回答