Java applet 错误...出了什么问题?

标签 java html swing japplet

Java 小程序代码

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)

最佳答案

问题出在包裹上。您需要更改小程序的代码属性,并根据放置 HTML 的位置更改代码库属性。您必须将 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

然后你必须像这样指定代码库属性:

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

因此,您应该将 codebase 指向包含您的包的目录,并且 code 中还必须包含您的包名称。

编辑: 请注意,尽管 code="HellowApplet.class" 可以工作,但指定小程序的正确方法是末尾没有“.class”。

关于Java applet 错误...出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6009767/

相关文章:

java - 管理整个应用程序中的互联网连接

java - BigTable ReadModifyWriteRow 支持映射功能

css - 为什么 li 中的 float 项会在其他缩放级别用 chrome 包裹?

java - 将音频剪辑保存在内存中

java - 使用边框布局的 JPanel 定位不起作用

java - 模拟的 HttpServletResponse 实例中 getContentType() 的返回为空

java - 获取错误 "Object doesn' t 支持属性或方法 'attachEvent'“在 IE11 中但在 IE8、IE9、IE10 中工作

php - Bootstrap 3 日历?

html - 在 html5 Canvas 上不正确显示 lineWidth=1

java - 如何制作一个 6 行 2 列的 Java GridBagLayout