File.jar non si apre

di il
5 risposte

File.jar non si apre

Salve, ho riscontrato un insidioso problema per quanto riguarda la semplice esecuzione con doppio click del file.jar localizzato in dist.
Premetto che il file ha sempre funzionato quando andavo ad aprirlo ma solo oggi ha deciso di non aprirsi più, la cosa buffa è che se provo ad avviare il progetto su netbeans allora il programma viene eseguito.
Ho pensato che si fosse corrotto il file.jar allora ho ricompilato e pulito ma il problema persiste, altro dato che ho riscontrato è la presenza di due errori durante la compilazione dei quali però non so se sono in qualche modo sono legati al mio problema ,credo di sospettarlo solo per il fatto che che prima non c'erano.

Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Spero possiate darmi una mano, non so che pesci prendere.

5 Risposte

  • Re: File.jar non si apre

    samuele.todesca ha scritto:


    Salve, ho riscontrato un insidioso problema per quanto riguarda la semplice esecuzione con doppio click del file.jar localizzato in dist.
    Premetto che il file ha sempre funzionato quando andavo ad aprirlo ma solo oggi ha deciso di non aprirsi più, la cosa buffa è che se provo ad avviare il progetto su netbeans allora il programma viene eseguito.
    Ho pensato che si fosse corrotto il file.jar allora ho ricompilato e pulito ma il problema persiste
    Affinché un jar sia "eseguibile" con:
    - comando: java -jar file.jar
    oppure
    - doppio-click (se/come permesso e configurato nel sistema per l'estensione .jar)

    è necessario che il file jar abbia il "manifest" che contiene l'attributo Main-Class che indica il nome completamente qualificato della classe con il main().

    Come generare il manifest correttamente, dipende da con cosa/come è stato creato il jar.

    samuele.todesca ha scritto:


    altro dato che ho riscontrato è la presenza di due errori durante la compilazione dei quali però non so se sono in qualche modo sono legati al mio problema ,credo di sospettarlo solo per il fatto che che prima non c'erano.

    Note: Some input files use unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    Questi comunque non sono "errori" (non falliscono la compilazione) e non c'entrano con la possibilità di eseguire o no il jar.
    Sono warning che pongono l'attenzione su operazioni non safe legate tipicamente ad un uso non buono o non completo dei generics.
  • Re: File.jar non si apre

    Ho verificato il file manifest confrontandolo con quello presente nel backup di qualche giorno fa, sono uguali. la differenza è che uno va e l'altro no.
    Come devo muovermi per generarlo correttamente con netbeans?
  • Re: File.jar non si apre

    samuele.todesca ha scritto:


    Ho verificato il file manifest confrontandolo con quello presente nel backup di qualche giorno fa, sono uguali. la differenza è che uno va e l'altro no.
    Come devo muovermi per generarlo correttamente con netbeans?
    Comunque un conto è se non riesce a caricare la classe e invocare il main() (Main-Class assente, errato o classe proprio mancante o main() mancante o errato). E un altro conto è se la applicazione fallisce quasi subito perché ha bisogno di "risorse" (es. immagini) nel jar che mancano.

    Gli IDE generalmente permettono di generare un "runnable" jar, tipicamente bisogna anche indicargli una "run configuration" (vale per Eclipse, per NetBeans non sono sicuro) in modo che il IDE "sappia" quale è la classe principale e quindi generare l'attributo Main-Class correttamente.

    Scrivere "a mano" il manifest e poi usare il tool "jar" del JDK per creare il file .jar è possibile ma molto molto noioso, perché il formato del manifest è ultra-pignolo su alcuni aspetti.
  • Re: File.jar non si apre

    Ho scoperto perchè accade! ho verificato tutte le tue ipotesi e mi sono accorto che non riesce a trovare un immagine facendo fallire l'operazione di apertura, e dato che si tratta di uno splash-screen in apertura al programma credo che vada in eccezione impedendo di continuare, ora che so la fonte del problema posso cercare una soluzione.
    Grazie infinite!
  • Re: File.jar non si apre

    Se una immagine (o altra risorsa) vuoi che faccia parte del jar, allora devi fare in modo che sia materialmente presente nel jar e possibilmente in un tuo package specifico.
    Poi da codice il file va referenziato usando il principio delle "risorse" usando il getResource o getResourceAsStream di un java.lang.Class (o di un ClassLoader specifico).

    Non puoi usare un normale path sul file-system, neanche java.io.File o FileReader o FileInputStream.

    Ne ho parlato tante di quelle volte sul forum ... fai una ricerca.
Devi accedere o registrarti per scrivere nel forum
5 risposte