Java code throwing the NoClassDefFoundError
:
public class Main {
public static void main(String[] args) {
try {
System.out.println("Starting Compiler4..");
Compiler4.main(args);
System.out.println("Compiler4 finished successfuly");
} catch (Throwable ex) {
System.out.println("Compiler4 threw an exception: " + ex);
ex.printStackTrace();
Throwable cause = ex.getCause();
if (cause != null) {
System.out.println("Cause: " + cause);
cause.printStackTrace();
}
System.out.println("End of Compiler4 exception");
}
}
}
Compiler4.java imports the right package name for Disposable class:
import com.intellij.openapi.Disposable;
Classpath:
$ echo $CLASSPATH
./tmp/lcc4/util.jar
Disposable is found in jar:
$ jar -tf ./tmp/lcc4/util.jar | grep Disposable.class
Picked up _JAVA_OPTIONS: -Xmx4g
com/intellij/openapi/Disposable.class
Disposable is found by java
command (It's OK that it does not have a main()
method):
java com/intellij/openapi/Disposable
Picked up _JAVA_OPTIONS: -Xmx4g
Error: Main method not found in class com.intellij.openapi.Disposable, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
One would think it should run correctly, but it does not:
java -jar lcc4.jar
Picked up _JAVA_OPTIONS: -Xmx4g
Starting Compiler4..
Compiler4 threw an exception: java.lang.NoClassDefFoundError: com/intellij/openapi/Disposable
java.lang.NoClassDefFoundError: com/intellij/openapi/Disposable
at com.dreambox.Main.main(Main.java:12)
Caused by: java.lang.ClassNotFoundException: com.intellij.openapi.Disposable
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
Cause: java.lang.ClassNotFoundException: com.intellij.openapi.Disposable
java.lang.ClassNotFoundException: com.intellij.openapi.Disposable
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.dreambox.Main.main(Main.java:12)
End of Compiler4 exception
I am on Mac.