El programa es un método public static void main() de toda la vida que queremos que se arranque por línea de comandos para realizar una serie de operaciones como un daemon ejecutándose cada cierta periodicidad.
El programa lazado en eclipse se lanza perfectamente y funciona, pero una vez empaquetado con eclipse para ejecutarse como Jar no funciona.
La manera en la que he intentado ejecutarlo es la siguiente:
java -jar DaemonBatch-1.1.0.jar
JAR |
y dentro del Jar tenemos su correspondiente archivo de Manifest.MF con todo lo necesario para la ejecución, la clase a ejecutar las dependencias y el classpath.
Manifest-Version: 1.0
Rsrc-Class-Path: aspectj-1.6.12.jar
spring-security-3.1.0.RELEASE-ldap.jar spring-security-3.1.0.RELEASE-
config.jar httpcore-4.1.jar aopalliance-1.0.jar spring-security-3.1.0
.RELEASE-core.jar org.springframework-3.1.1.RELEASE-transaction.jar j
stl-1.2-api.jar blazeds-4.0.0.14931-rds-server.jar javamail-1.4.5.jar
org.springframework-3.1.1.RELEASE-instrument.jar spring-security-3.1
.0.RELEASE-acl.jar spring-security-3.1.0.RELEASE-web.jar .............
Class-Path: .
Rsrc-Main-Class: com.antuansoft.batch.main.Main
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
Lo he exportado de diferentes formas pero siempre me ha dado el mismo error
java.io.FileNotFoundException: URL [rsrc:com/antuansoft/batch/task/] cannot be resolv
ed to absolute file path because it does not reside in the file system: rsrc:com
/antuansoft/batch/task/
Así que he optado por descomprimir el JAR, poner todas las librerias .jar en un directorio lib y ejecutar el siguiente comando para que funcione sin problemas.
java -classpath .;lib/* com.gniux.batch.main.Main
Y ha arrancado sin ningún problema.
Así que si en tu programa no es necesario que este se empaquete todo en un JAR, una alternativa es la que os acabo de proponer.
De todas formas seguiremos investigando.