I can make a executable jar file with Eclipse. Let's say it is called ast.jar
, and the Main class is ASTExplorer. I can verify that this works with java -jar ast.jar
.
Then, I unzip the jar file in a separate directory and verify that the ASTExplorer is in astexplorer directory. But when I executed this command java -cp . astexplorer.ASTExplorer
I get this error.
java -cp . astexplorer/ASTExplorer
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composite
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
The thing is that there is no org/eclipse/swt directory in the jar file.
What's the magic behind the executable jar file? Why doesn't it run when unzipped?