Java applet错误……有什么问题?
作者:互联网
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的代码属性,并根据放置HTML的位置,更改代码库属性.您必须将HellowApplet.class放在名为M257Applet的目录中(因为这是您提供的包),并且applet标记应如下所示:
<applet code="M257Applet.HellowApplet" ... ></applet>
为此,您的HTML必须与M257Applet位于同一目录中(不在M257Applet内).或者,您可以指定codebase属性.例如,使用以下目录结构:
somedir
+-- hello.html
+-- M257Applet
| +-- HellowApplet.class
小程序将工作.但是,如果你有
anotherdir
+-- hello.html
+-- somedir
| +-- M257Applet
| | +-- HellowApplet.class
那么你必须像这样指定codebase属性:
<applet code="M257Applet.HellowApplet" codebase="somedir" ... ></applet>
因此,您应该让代码库指向包含您的包的目录,并且代码也必须包含您的包名.
编辑:
请注意,即使code =“HellowApplet.class”可行,指定applet的正确方法最后也没有“.class”.
标签:html,japplet,java,swing 来源: https://codeday.me/bug/20190927/1824989.html