0
votes

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

Code:-

    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();
    }
}
1
Mythread2 should be MyThread2, please check the case of 't'. - Ankur Verma

1 Answers

0
votes

You wrote in your Main Method Mythread2 but you need to name it MyThread2 because thats the identical name of your Runnable class.