NotClassDefFoundError的错误

编程入门 行业动态 更新时间:2024-10-07 10:16:51

NotClassDefFoundError的<a href=https://www.elefans.com/category/jswz/34/1771449.html style=错误"/>

NotClassDefFoundError的错误

1、问题原因:

这个问题的原因是内部类的class文件没找到
所以才会出现NoClassDefFoundError(运行时类找不到)
记录下我为什么出现这个错误:
使用idea编译java文件,万万没想到idea竟然是不会生成内部类的class的,但是idea只生成的主类class在idea上运行是没有错误的,将idea编程生成的主类class单独到到了控制台运行,当一但调用关于内部类的代码时就会报NoClassDefFoundError,这一度让我以为我找到了jdk的bug,人傻了都。

2、问题解决:

若是涉及内部类的java程序,需要在控制台运行其class文件,
就需要也在控制台利用原始jvm编译器编译,
这样就会生成主类的class和内部类的class**。

一般内部类的class文件名字都是主类名$内部类的名字,匿名内部类class文件名字时主类名$1

  • 示例:
    1、ThreadTest .java (匿名内部类)
public class ThreadTest {public static void main(String[] args) {Thread thread1 = new Thread(new Runnable() {public void run() {System.out.println("爬爬");}});thread1.start();}
}

2、控制台编译

javac -encoding UTF-8 ThreadTest.java

会生成两个class

3、运行

java ThreadTest


执行成功!!!

额外的,若是希望文件夹下不要主类内部类等等过多的问价,可以对主类和内部类打包成jar,打包成jar的方法可以参考如下:
class打包jar实用教程

更多推荐

NotClassDefFoundError的错误

本文发布于:2024-03-23 19:27:46,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1741913.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:错误   NotClassDefFoundError

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!