Puedo hacer un archivo jar ejecutable con Eclipse. Digamos que se llama ast.jar
, y la clase principal es ASTExplorer. Puedo verificar que esto funciona con java -jar ast.jar
.La magia detrás del eclipse generado archivo jar ejecutable
Luego, descomprimo el archivo jar en un directorio aparte y verifico que ASTExplorer está en el directorio astexplorer. Pero cuando ejecuté este comando java -cp . astexplorer.ASTExplorer
me sale este 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)
El hecho es que no hay un directorio org/eclipse/swt en el archivo jar.
¿Cuál es la magia detrás del archivo jar ejecutable? ¿Por qué no se ejecuta cuando se descomprime?
Deberías intentar crear tu JAR con hormiga, sin la magia negra del eclipse. –
¿Cuál es su ruta de clase cuando ejecuta 'java -jar ast.jar'. Cuando desempaquete el archivo jar su classpath es '.'. Supongo que hay una variable de entorno CLASSPATH configurada en algo que permite que funcione el 'java -jar ast.jar'. – km1