Proyecto que genera un jar que no se ejecuta
Publicado por Jesús (1 intervención) el 21/11/2011 12:42:11
Al generar un fichero .jar utilizando Maven, el ichero jar generado da error al ser ejecutado.
Lo intento ejecutar desde la línea de comandos mediante:
El error que obtengo es:
Observo que en el fichero .jar generado, hay una carpeta llamada META-INF, en la que hay un fichero llamado MANIFEST.MF. El contenido de ese fichero es:
Creo que en dicho fichero debería haber una línea indicando qué fichero contiene la clase main, algo como:
Para generar el fichero POM he utilizado como archetypeArtifactId maven-archetype-quickstart. Este es el fichero POM que utilizo
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
El fichero vessel.class generado en target\classes se ejecuta sin problemas.
¿Debe ser esto así o se le puede decir a Maven que genere un .jar tal que se pueda ejecutar?
Saludos y gracias anticipadas.
Lo intento ejecutar desde la línea de comandos mediante:
java -jar vessel-1.0.jar.
El error que obtengo es:
"Failed to load Main-Class manifest attribute from vessel-1.0.jar"
Observo que en el fichero .jar generado, hay una carpeta llamada META-INF, en la que hay un fichero llamado MANIFEST.MF. El contenido de ese fichero es:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: edmund
Build-Jdk: 1.6.0_26
Creo que en dicho fichero debería haber una línea indicando qué fichero contiene la clase main, algo como:
Main-Class: vessel
Para generar el fichero POM he utilizado como archetypeArtifactId maven-archetype-quickstart. Este es el fichero POM que utilizo
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cit</groupId>
<artifactId>vessel</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>vessel</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>El fichero vessel.class generado en target\classes se ejecuta sin problemas.
¿Debe ser esto así o se le puede decir a Maven que genere un .jar tal que se pueda ejecutar?
Saludos y gracias anticipadas.
Valora esta pregunta


0