5

これらの投稿が何百万もあることに気づきましたが、どれも役に立たなかったので、ここに行きます:適切にロードされない非常に単純なアプレットを展開しようとしています。私のHTML:

<html>
<head>
    <meta http-equiv="Content-Type" content"text/html; charset=utf-8">
</head>
<body>
   <applet code = "SimpleApplet.class"
   width = "320" height = "100"></applet>
</body>
</html>

私のJava:

package test;

import javax.swing.*;   

public class SimpleApplet extends JApplet{
   public void init(){
      try{
        SwingUtilities.invokeAndWait(new Runnable(){
          public void run(){
            JLabel lbl = new JLabel("Hello World");
            add(lbl);
          }
        });             
      }
      catch(Exception e){
        System.out.println(e);
      }
   }
}

両方のファイルは同じディレクトリにあります

/home/me/workspace/myProject/bin/test

アプレットを Eclipse 経由で単独で実行すると、問題なく動作します。ページを開くとエラーが表示されます

java.lang.NoClassDefFoundError: SimpleApplet (wrong name: test/SimpleApplet)

このエラーは、何かを間違って配置または命名したことを示しています。しかし、試した後、

<applet code = "test/SimpleApplet.class"
width = "320" height = "100"></applet>

<applet code = "SimpleApplet.class"
codebase = "/test"
width = "320" height = "100"></applet>

" の削除、絶対パス名とすべての部分パス名の試行、.java の使用など、他の試みとともに、それでも機能せず、最終的に ClassNotFoundException が発生します。他の 回答は、クラスパスとコードベース (多くの場合、アーカイブに関連する) を指摘しています。問題は、これが発生する主な理由です.しかし、私はjarファイルを使用しておらず、両方のファイルが同じディレクトリにあります.誰でもこれが発生する理由を知っていますか?

4

3 に答える 3

7
  • /home/me/workspace/myProject/bin
    • applet.html
    • /home/me/workspace/myProject/bin/test
      1. SimpleApplet.class

クラスSimpleAppletがパッケージ内にある場合testは、HTML を親ディレクトリに置き (上記で説明したように)、この HTML を使用します。

<html>
<head>
    <meta http-equiv="Content-Type" content"text/html; charset=utf-8">
</head>
<body>
   <applet code = "test.SimpleApplet"
   width = "320" height = "100"></applet>
</body>
</html>

サイドヒント:

  • コードを投稿するときは、imports と package ステートメントも投稿します。つまり、すべてを投稿します。現状では、物事について推測する必要があります。しかし、完全なコードがあれば、その必要はありません。
  • この段階ではアプレットを試さないでください。コマンドラインでパッケージを操作することを整理する必要があり、アプレットは GUI を使用するアプリケーションよりも困難です。
于 2012-07-29T00:30:11.173 に答える
0

から判断

" の削除、絶対パス名とすべての部分パス名の試行、.java の使用など、他の試みとともに

test/SimpleApplet.class ではなく、test/SimpleApplet.java をソースにしようとしています。SimpleApplet.java ファイルを SimpleApplet.class ファイルにコンパイルする必要があります。

そのときは、必ず使用してください

<applet code = "SimpleApplet.class"
codebase = "/test"
width = "320" height = "100"></applet>

/test はパッケージ名ではなくコードベースです。

于 2012-07-27T17:48:35.437 に答える