我并不是一个完全的 Java 初学者,但我不知道这里发生了什么。当我尝试编译以下代码时:
package controls;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class RButton {
public RButton() {
}
}
我收到以下错误:
java.lang.NoClassDefFoundError: RButton (wrong name: controls/RButton)
RButton.java 文件位于目录“项目文件夹\ribbon\controls\”中。在 Ribbon 文件夹中,我已经能够成功地将 packageribbon;
放在源文件的顶部。我不明白我在这里做错了什么。有什么帮助吗?
编辑:问题出在我与 Sublime Text for Java 源文件结合使用的批处理文件上。 JCreator编译运行没有问题。谢谢您的帮助。不过!
最佳答案
位于 controls
文件夹中的类的包名称应为 ribbon.controls
。文件夹结构通过包命名和层次结构进行 1 对 1 匹配。
因此,在 ribbon
文件夹中,放置packageribbon
。在ribbon/controls
文件夹中,放置packageribbon.controls
。在ribbon/controls/foo
文件夹中,您使用packageribbon.controls.foo
等
关于制作Java包时出现java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16155868/