[Java] Eseguibile .jar che non si apre

ariannaari

Nuovo Utente
28 Set 2010
22
10
0
Ragazzi buongiorno.
Devo creare un eseguibile di un'applicazione java/javaswing che ho creato. Io lavoro su Netbeans ma vorrei si potesse aprire senza usare l'editor. Mi pare di aver capito, leggendo qua e là tra i vari forum, che sia una cattiva idea creare il .exe, ma che basti il .jar .
Usando Netbeans, seguendo le indicazioni che ho trovato leggendo ho:
-cliccato su Clean & build
-si è creata la cartella dist e il file Rubrica.jar (la mia è un'applicazione che fa da rubrica)
-clicco 2 volte su Rubrica.jar ma non succede niente di niente.
Se faccio "apri con" e seleziono "Java(TM) Platform SE Binary", ugualmente non succede niente! La mia è un'applicazione con interfaccia grafica. Che problema c'è? come faccio ad eseguire la mia app senza entrare in Netbeans?

Premetto che, l'output di Netbeans è questo:
Codice:
ant -f C:\\rubrica_federico clean jar
init:
deps-clean:
Updating property file: C:\rubrica_federico\build\built-clean.properties
Deleting directory C:\rubrica_federico\build
clean:
init:
deps-jar:
Created dir: C:\rubrica_federico\build
Updating property file: C:\rubrica_federico\build\built-jar.properties
Created dir: C:\rubrica_federico\build\classes
Created dir: C:\rubrica_federico\build\empty
Compiling 86 source files to C:\rubrica_federico\build\classes
warning: [options] bootstrap class path not set in conjunction with -source 1.5
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 warning
Copying 258 files to C:\rubrica_federico\build\classes
compile:
Created dir: C:\rubrica_federico\dist
Copying 1 file to C:\rubrica_federico\build
Copy libraries to C:\rubrica_federico\dist\lib.
Building jar: C:\rubrica_federico\dist\Rubrica.jar
To run this application from the command line without Ant, try:
java -jar "C:\rubrica_federico\dist\Rubrica.jar"
jar:
BUILD SUCCESSFUL (total time: 9 seconds)

e, provando dal prompt dei comandi, ho verificato che ho questo errore, che a quanto pare però su netbeans non viene rilevato!

Codice:
C:\rubrica_federico\dist>java -jar "Rubrica.jar"
Exception in thread "main" java.lang.NullPointerException
        at control.CImmagini.<init>(CImmagini.java:65)
        at control.CImmagini.istanza(CImmagini.java:75)
        at control.CStartup.main(CStartup.java:39)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at control.CImmagini.<init>(CImmagini.java:65)
        at control.CImmagini.istanza(CImmagini.java:75)
        at presentation.componenti.backgroundedFittedLayeredPane.<init>(backgrou
ndedFittedLayeredPane.java:24)
        at presentation.PMAIN.<init>(PMAIN.java:72)
        at control.CStartup$1.run(CStartup.java:32)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

Sapete aiutarmi?
 
  • Like
Reactions: ottofonsuppost
Un caso esemplare: l'utente ha scritto un programma in JAVA, ma non sa come funziona JAVA. Utilizza l'IDE NETBEANS che gli fa vedere il progetto, le risorse, ma lui non sa come funziona JAVA. E' tutto qui il problema. Non comprende come fa JAVA, una volta scritto e compilato un programma, ad essere eseguito in qualsiasi altro dispositivo esistente, in qualsiasi elettrodomestico, grazie alla VIRTUAL MACHINE. La PORTABILITA' di JAVA è famosissima. Che viene creato un BYTECODE lo saprà? Che il suo codice scritto si trovi in un file .JAVA lo saprà? Che una volta compilato compare un file .CLASS lo saprà? Che è il file .CLASS da trasportare negli altri dispositivi non lo sa. Sa scrivere in JAVA ma non sa come funziona JAVA.
La rete internet è piena di programmatori JAVA che creano programmi, scrivono codice JAVA, ma non sanno come funziona JAVA. Per venire incontro a questi pseudo-programmatori OTTOFONSUPPOST ha creato un corso JAVA, proprio per capire COSA FA JAVA. Eccovi il link che figura sul forum MR.WEBMASTER del corso per neofiti:

http://forum.mrw.it/threads/ottofonsuppost-e-la-grande-guerra-a-java-corso-gratis-per-neofiti.45758/

Ottofonsuppost e la grande guerra a JAVA - Corso GRATIS per neofiti

Nel caso in questione, l'utente pone fine alla portabilità di JAVA cercando di creare un ESEGUIBILE EXE.
Per tale scopo si può utilizzare il programma JSmooth (giunto alla versione 0.9.9-7) che crea un eseguibile Windows di dimensioni ridotte e perfettamente funzionante con qualsiasi versione del S.O. Ciò che si cela dietro un programma gratuito, semplice e sufficientemente usabile come JSmooth, in realtà non è altro che un wrapper che crea un eseguibile Windows senza alterare la struttura del software: l'applicazione ottenuta non fa altro che mandare in pasto alla JVM i bytecode originali, nascondendo dietro al file .exe un'invocazione della JVM.

http://jsmooth.sourceforge.net/
 
Ultima modifica:

Discussioni simili