Java 小程序故障-NoClassDefFoundError

Java 小程序故障-NoClassDefFoundError,java,applet,noclassdeffounderror,Java,Applet,Noclassdeffounderror,我意识到有一百万篇这样的帖子,但没有一篇对我有帮助,所以我要说的是:我正在尝试部署一个非常简单的小程序,它无法正常加载。 我的HTML: <html> <head> <meta http-equiv="Content-Type" content"text/html; charset=utf-8"> </head> <body> <applet code = "SimpleApplet.class" width

我意识到有一百万篇这样的帖子,但没有一篇对我有帮助,所以我要说的是:我正在尝试部署一个非常简单的小程序,它无法正常加载。 我的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>
两个文件位于同一目录中

/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>
指出类路径和代码库(通常与归档相关)问题是出现这种情况的主要原因。但是,我没有使用jar文件,两个文件都在同一个目录中。有人知道为什么会这样吗?

以及其他尝试,包括删除“,”尝试绝对路径名和所有部分路径名,以及使用.java

您正在尝试源代码test/simpleaplet.java,而不是test/simpleaplet.class。您需要将simpleaplet.java文件编译为simpleaplet.class文件

确保当你这样做时,你使用

<applet code = "SimpleApplet.class"
codebase = "/test"
width = "320" height = "100"></applet>

As/test是代码基,而不是包名。

  • /home/me/workspace/myProject/bin
    • applet.html
    • /home/me/workspace/myProject/bin/test
    • simpleaplet.class
如果类
simpleaplet
在package
test
中,则将HTML放入父目录(如上所述),并使用此HTML

<html>
<head>
    <meta http-equiv="Content-Type" content"text/html; charset=utf-8">
</head>
<body>
   <applet code = "test.SimpleApplet"
   width = "320" height = "100"></applet>
</body>
</html>

小贴士:
  • 在发布代码时,也要发布导入和包语句,或者换句话说,所有内容。既然如此,我们需要猜测;但是有了完整的代码,我们就不必这样做了
  • 在这个阶段不要尝试小程序。你应该在命令行上整理一下如何使用软件包,小程序比使用GUI的应用程序更难

NoClassDefFoundError:Ahmed(错误名称:intoapplet/Ahmed)

我已经找了三天的解决方案了

你的忠告是:

如果您已将类命名为“test”,则编码约定建议它应为“test”

这有助于我在Java类中不包含包声明

----------------------------------Java代码:--------------------------------

    import java.awt.*;
    import javax.swing.*;

    public  class  Ahmed extends JApplet {

    private static final long serialVersionUID = 1L;

    public void paint(Graphics g){
    super.paint(g);
    g.drawString("my name is Ahmed Zaki wow this actually
    works",300,300);                     
    }
    }
    <html>
    <head>
    <title>Tutorial applet</title>
    </head>
    <body>

    <Applet code="Ahmed.class"   width="400"; height="300";> 

    </Applet>
    </body>
    </html>
----------------------------------HTML代码----------------------------------

    import java.awt.*;
    import javax.swing.*;

    public  class  Ahmed extends JApplet {

    private static final long serialVersionUID = 1L;

    public void paint(Graphics g){
    super.paint(g);
    g.drawString("my name is Ahmed Zaki wow this actually
    works",300,300);                     
    }
    }
    <html>
    <head>
    <title>Tutorial applet</title>
    </head>
    <body>

    <Applet code="Ahmed.class"   width="400"; height="300";> 

    </Applet>
    </body>
    </html>

似乎是说您有一个名为“SimpleApplet”的.class文件,内部称其名称为“test/SimpleApplet”。也就是说,您已将其声明为在“test”包中,但尚未将其定位在jar或类目录中的“test”目录中。例如,您可能指定了“mystuff/mydir/test”在类路径中,当您应该只说“mystuff/mydir”时。