java Runnable - 线程“main”java.lang.NoClassDefFoundError中的异常

时间:2015-01-15 21:00:31

标签: java

我想用" java"运行我的java代码命令:

public class Statistics {

    public static void main(String[] args) throws IOException {

        .....
        .....

        final Runnable r = new Runnable() {
            @Override
            public void run() {
                .....
            }
        };

        scheduler.scheduleAtFixedRate(r, 0, 15, TimeUnit.MINUTES);
    }
}

我收到此错误:

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(){

2 个答案:

答案 0 :(得分:0)

是否可以在调度程序有机会执行之前退出main()方法? 即在返回之前,你不应该让main()方法等待调度程序完成吗?

答案 1 :(得分:0)

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

final Runnable r = new Runnable() {
  @Override
  public void run() {
    .....
  }
};

您的类Statistics将编译为名为Statistics.class的类文件,而此匿名类将编译为名为Statistics$1.class的类文件。

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

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

相关问题