NoClassDefFoundError 在运行时出现此错误?

问题描述 投票:0回答:1

错误

NoClassDefFoundError

Exception in thread "main" java.lang.NoClassDefFoundError: Mythread (wrong name: MyThread)
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:753)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:676)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
    at multirunable.main(multirunable.java:15)

Process finished with exit code 1

代码:

class MyThread implements Runnable {
    @Override
    public void run() {
        System.out.println("I am a thread 1 not a thread 2");
    }
}
class MyThread2 implements Runnable {
    @Override
    public void run() {
        System.out.println("I am a thread 2 not a thread 1");
    }
}
public class multirunable {
    public static void main(String[] args) {
        MyThread t1 = new MyThread();
        Thread w1 = new Thread(t1);
        Mythread2 t2 = new Mythread2();
        Thread w2 = new Thread(t2);
        w1.start();
        w2.start();
    }
}
java multithreading jvm runtime-error
1个回答
0
投票

您在 Main 方法中编写了

Mythread2
,但您需要将其命名为
MyThread2
,因为这与您的 Runnable 类的名称相同。

© www.soinside.com 2019 - 2024. All rights reserved.