【发布时间】:2012-07-27 17:03:25
【问题描述】:
我意识到有上百万篇这样的帖子,但没有一个对我有帮助,所以这里是:我正在尝试部署一个无法正确加载的非常非常简单的小程序。 我的 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。Otheranswers 指出类路径和代码库(通常与存档有关)问题是发生这种情况的主要原因。但是,我没有使用 jar 文件,并且两个文件都在同一个目录中。有人知道为什么会这样吗?
【问题讨论】:
-
这似乎是说你有一个名为“SimpleApplet”的.class 文件,它在内部说它的名字是“test/SimpleApplet”。即,您已将其声明在“test”包中,但尚未将其定位在 jar 或 class 目录内的“test”目录中。例如,您可能在类路径中指定了“mystuff/mydir/test”,而您应该只说“mystuff/mydir”。
标签: java applet noclassdeffounderror