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 で正常に動作するため、関連性はないと思います。

これを実行するまで、今夜は眠れません...

編集:簡単にするために、コードベースを処理する必要がないように、すべてを 1 つのフォルダーに移動しようとしました。現在の外観は次のとおりです。

<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「アプレット」ディレクトリがあるディレクトリを指すように設定することを忘れないでください。

于 2013-03-17T07:58:40.093 に答える