java Runnable-线程中的异常;“主要”;java.lang.NoClassDefFoundError

java Runnable-线程中的异常;“主要”;java.lang.NoClassDefFoundError,java,Java,我想用“java”命令运行java代码: 我得到这个错误: Exception in thread "main" java.lang.NoClassDefFoundError: jsoup/Statistics$1 at jsoup.Statistics.main(Statistics.java:37) Caused by: java.lang.ClassNotFoundException: jsoup.Statistics$1 at java.net.URLClassLoade

我想用“java”命令运行java代码:

我得到这个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: jsoup/Statistics$1
    at jsoup.Statistics.main(Statistics.java:37)
Caused by: java.lang.ClassNotFoundException: jsoup.Statistics$1
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 1 more

37行:final Runnable r=new Runnable(){

是否在调度程序有机会执行之前退出main()方法?
也就是说,您的main()方法是否应该在返回之前等待调度程序完成?

下面的方法称为匿名内部类。
Runnable
接口通常无法实例化,但您正在动态扩展它,以创建一个实现Runnable的新类

final Runnable r = new Runnable() {
  @Override
  public void run() {
    .....
  }
};
您的类
Statistics
编译为名为
Statistics.class
的类文件,而此匿名类编译为名为
Statistics$1.class
的类文件

我怀疑您将统计类文件移动到了一个新的目录位置,以便使用
java
运行它。在这种情况下,您还必须移动它的伴生类文件。或者您可能错误地删除了
Statistics$1.class


最好不要移动类文件,而是将包含
java.exe
的文件夹添加到Windows中的PATH环境变量中。

你能检查一下你的类路径中是否有该类吗?奇怪的是,问题似乎是它找不到自己编译的匿名类。统计信息。java:37指向代码line:final Runnable r=new Runnable()尝试重新编译。可能是由于某种原因,.class文件被从磁盘上删除了?
final Runnable r = new Runnable() {
  @Override
  public void run() {
    .....
  }
};