Error 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
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();
}
}
You wrote in your Main Method Mythread2
but you need to name it MyThread2
because thats the identical name of your Runnable class.