Salve a tutti,
premesso che la domanda può essere stupidissima per molti ma io con i jar file ho pochissima dimestichezza.
Sto facendo un test che mi serve a capire le cause di un problema più complesso, ma cerco di risolverlo partendo dalle cose semplici.
La situazione è questa
1. Ho eclipse in cui compilo un progetto.
2. Tramite lo shrinkwrap di arquillian creo un file JAR (contiene una semplice classe "helloworld" con un metodo main che stampa a video e contiene un metodo per creare il jar.
3. Sempre tramite lo shrinkwrap inserisco il manifest a run time (il manifest l'ho pesco nella cartella del progetto).
4. Quando stampo il file jar col metodo toString, vedo che dentro c'è tutto ciò che ci deve essere.
5. Quando eseguo RUN tutto funziona bene, l'esecuzione è perfetta e il jar viene creato sul filesystem.
A QUESTO PUNTO
Per vedere se il jar è eseguibile vado dal prompt di comandi nella cartella del progetto lancio il file con java -jar nome.ext e ricevo l'errore INVALID OR CORRUPT JARFILE.
Qualcuno mi sa dire perché? Cosa sbaglio nella procedura?
Grazie a chi mi risponderà!
Ecco il codice:
codice:
package org.arquillian.example;
import java.io.File;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.exporter.ZipExporter;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
public class Hello {
@Deployment
public static JavaArchive createDeployment(){
JavaArchive jar = ShrinkWrap.create(JavaArchive.class)
.addClass(Greeter.class)
.addAsManifestResource(new File("beans.xml"));
System.out.println(jar.toString(true));
jar.as(ZipExporter.class).exportTo(new File("Greet4.jar"), true);
return jar;
}
public static void main(String[] args) {
createDeployment();
System.out.println("Salve a tutti");
}
}
Ecco il contenuto del file Manifest (alla fine ci sono due <INVIO>)
codice:
<!-- MANIFEST TEST -->
Manifest-Version: 1.0
Created-By: Marco Quaranta
Main-Class: Hello