[英]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.