2014-06-05 6 views
8

Ho un'applicazione che utilizza alcuni jar s esterni come mail-1.4 e così via. Ora desidero eseguire l'app fuori dall'IDE (IntelliJ). Anche io stavo seguendo istruzioni File> Struttura del progetto> Artefatti e così via, ma il mio prompt dei comandi dice:Creazione di un file eseguibile .jar utilizzando Intellij

Exception in thread "main" java.lang.SecurityException: Invalid signature file 
igest for Manifest main attributes 
     at sun.security.util.SignatureFileVerifier.processImpl(Unknown Source) 
     at sun.security.util.SignatureFileVerifier.process(Unknown Source) 
     at java.util.jar.JarVerifier.processEntry(Unknown Source) 
     at java.util.jar.JarVerifier.update(Unknown Source) 
     at java.util.jar.JarFile.initializeVerifier(Unknown Source) 
     at java.util.jar.JarFile.getInputStream(Unknown Source) 
     at sun.misc.URLClassPath$JarLoader$2.getInputStream(Unknown Source) 
     at sun.misc.Resource.cachedInputStream(Unknown Source) 
     at sun.misc.Resource.getByteBuffer(Unknown Source) 
     at java.net.URLClassLoader.defineClass(Unknown Source) 
     at java.net.URLClassLoader.access$100(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) 

mio MANIFEST è quasi vuota:

Manifest-Version: 1.0 
Main-Class: ru.tenet.smsc.SMSC 

Cosa c'è di sbagliato?

+1

Quando viene visualizzato questo errore? Quando costruisci l'artefatto o quando esegui la tua applicazione? Vedo quest'ultimo, quindi in questo caso mostra la tua linea di comando. E dai un'occhiata a http://stackoverflow.com/questions/999489/invalid-signature-file-when-attempting-to-run-a-jar –

+0

Puoi creare un singolo jar con tutte le dipendenze senza preoccuparti di l'eccezione della firma. Non aggiungere dipendenze estratte. Per maggiori dettagli vedi questa risposta: http://stackoverflow.com/questions/41746177/how-do-i-create-a-runnable-jar-in-intellij-as-i-would-in-eclipse/43855741#43855741 –

risposta

10

Uno dei vasi estratti al vaso di destinazione è stato firmato. Il modo più semplice per risolverlo è selezionare "copia nella directory di output e link via manifest" nella finestra di dialogo "Crea JAR dai moduli"

+0

In questo modo creerà una cartella con tutte le dipendenze jar all'interno, non solo un archivio jar. – loretoparisi