05 abril 2007

Java: problemas con los archivos jar

Llevo unos días metido en el tema de la programación en Java, pues me gustaría intentar hacer un mini programa para mi treball de recerca de bachillerato, así que me puse a buscar unos cuantos tutoriales y manuales sobre java.

Estoy leyendo este tutorial para novatos y he llegado al punto en que te enseñan a empaquetar en archivos .jar.

Hasta aquí muy bien, pero llegado al punto de incluir el manifiesto para poder ejecutar java directamente, me ocurre lo siguiente:

java -jar fichero.jar
Failed to load Main-Class manifest attribute from fichero.jar

El archivo de manifiesto estaba bien escrito: Main-Class: prueba.HolaMundo, así que no sé que es lo que podía ocurrir. Entonces lo volví a compilar (unas cuantas veces) para comprobar que no era un problema de ejecución de comandos y seguía dándome el mismo error.

Abrí Google y me puse a indagar utilizando el código de error como búsqueda, y no fueron pocas las páginas que me aparecieron. El caso es que cuando llegué a la séptima u octava página encontré, no uno, sino dos páginas que me daban la clave al problema:

Para cerrar el archivo de manifiesto, hay que dejar un salto de línea al final, de tal modo que quedaría así:

Manifest-Version: 1.0
Main-Class: prueba.HolaMundo
/*aquí está el salto de línea*/

Volvemos a compilar:

jar cfmv fichero.jar manifest.mf prueba
manifest agregado
agregando: prueba/ (entrada = 0) (salida = 0) (almacenado 0%)
agregando: prueba/HolaMundo.class (entrada = 511) (salida = 339) (desinflado 33%
)
agregando: prueba/HolaMundo.java (entrada = 247) (salida = 146) (desinflado 40%)

Ejecutamos:

java -jar fichero.jar
Hola mundo

Y ya hemos conseguido que funcione ^^

Si queréis, podéis descargar el fichero.jar

Espero que quien tenga el mismo problema que yo caiga aquí y le sirva de ayuda n_n

Un saludo,
Morpheus

Technorati Tags de Technorati: , , , , ,

3 comentarios:

Deison dijo...

Freak (K)

Near dijo...

gran ayuda xD

tenia el mismo problema con el manifiesto

Morpheus dijo...

Me alegro de que te haya servido de ayuda ^^