簡體   English   中英

Java applet錯誤…怎么了?

[英]Java applet Error … What is wrong?

Java applet代碼

package M257Applet

import java.applet.*;

import javax.swing.*;

import java.awt.*;

public class HellowApplet extends JApplet {

    public  void init(){

        Container cp = getContentPane();
        JLabel lb = new JLabel("Hellowwwww");
        cp.add(lb);
    }

}

html文件

<html>
<head>
<title>Applet</title>
</head>
<body>
<APPLET CODE = HellowApplet.class  WIDTH =  400   HEIGHT = 400 >
</APPLET>
</body>
</html>

錯誤

Java Plug-in 1.6.0_22
Using JRE version 1.6.0_22-b04 Java HotSpot(TM) Client VM
User home directory = C:\Users\pc
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------


java.lang.NoClassDefFoundError: HellowApplet (wrong name: M257Applet/HellowApplet)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Exception: java.lang.NoClassDefFoundError: HellowApplet (wrong name: M257Applet/HellowApplet)

問題出在包裝上。 您需要更改applet的code屬性,並根據放置HTML的位置來更改codebase屬性。 您必須將HellowApplet.class放在名為M257Applet的目錄中(因為這是您提供的包),並且applet標記應類似於:

<applet code="M257Applet.HellowApplet" ... ></applet>

為此,您的HTML必須與M257Applet位於同一目錄(不在M257Applet內)。 或者,您可以指定代碼庫屬性。 例如,具有以下目錄結構:

somedir
  +-- hello.html
  +-- M257Applet
  |    +-- HellowApplet.class

小程序將起作用。 但是,如果您有

anotherdir
  +-- hello.html
  +-- somedir
  |   +-- M257Applet
  |   |    +-- HellowApplet.class

那么您將必須像這樣指定codebase屬性:

<applet code="M257Applet.HellowApplet" codebase="somedir" ... ></applet>

因此,您應該使codebase指向包含您的軟件包的目錄,並且code也必須在其中包含您的軟件包名稱。

編輯:請注意,即使code="HellowApplet.class"將起作用,但是指定applet的正確方法是末尾沒有“ .class”。

您的課程在一個包中。 它的文件名應該匹配。

code="M257Applet/HellowApplet.class"

(遵循約定是個好主意。程序包名稱應全部使用小寫。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM