View Full Version : Autorun Programma Java da icona su Desktop
davide_sana
06-10-2009, 16:36
Ho descritto un codice Java funzionante con NetBeans. Il programma descritto è prettamente grafico..o meglio una sequenza di Frame che compaiono in base ai vari bottoni premuti. Ora, vorrei fare in modo di creare una icona da mettere su desktop..e cliccando due volte su questa icona far partire il programma..ovvero far appararire il Frame principale.
Come posso riuscire a fare una cosa simile (qualora sia possibile)?
Sarebbe davvero interessante poter fare una cosa simile!
yorkeiser
06-10-2009, 17:06
Certo che puoi, basta crearti un collegamento e farlo puntare al programma, ricordandoti però di includere anche il classpath.
Ad esempio, se usi il classico sistema di archivio di Netbeans, per lanciare il progetto Progetto1, in cui il main() si trova nella classe Main, potresti creare un collegamento con questa stringa:
java -cp "d:\Documents and Settings\<tuo nome utente>\My Documents\NetBeansProjects\Progetto1\build\classes" Progetto1.Main
basta creare un collegamento al file jar eseguibile del programma (lo trovi nella cartella dist).
davide_sana
06-10-2009, 19:03
Allora..ho creato un nuovo collegamento su desktop mettendo come percorso il seguente:
java - cp "c:\Documents and Settings\home\Documenti\NetBeansProjects\apertura_frame\build\classes" apertura_frame.Window
in quanto il main del progetto apertura_frame è contenuto nella classe Window.
Su desktop si è creata un'icona col simoboletto Java. Cliccandoci sù due volte però si apre e chiude una finestra immediatamente..non visualizando così nulla del mio programma.
Dove sbaglio?
wingman87
06-10-2009, 19:15
"-" e "cp" devono essere attaccati: "-cp"
davide_sana
06-10-2009, 19:17
All'nterno della cartella dist ho un'altra cartella Javadoc ma nessun file jar.
davide_sana
06-10-2009, 19:20
"-" e cp" sono attaccati. Ma il problema rimane..
clean and build (pulsante con martello e scopetta), netbeans creerà il jar. Sulla console di output di netbeans comparirà una scritta, tipo:
"per lanciare questo programma da console digita x:\blabla\dist\bla.jar".
bla.jar è il tuo jar eseguibile.
davide_sana
06-10-2009, 20:21
Facendo il clean and buil compare il seguente errore:
C:\Documents and Settings\home\Documenti\NetBeansProjects\apertura_frame\src\apertura_frame\apertura frame.java:3: duplicate class: Window
class Window
Ho notato che mi dà lo stesso errore in tutti i codici che ho finora scritto.
Che tipo di errore è?
Hai due classi di nome Window nello stesso package. Verifica il codice sorgente, dovrebbe segnarti in rosso entrambe le dichiarazioni della classe Window.
davide_sana
06-10-2009, 21:42
Sistemato il problema delle due classi nello stesso package.
Adesso col clean and bean mi scrive:
To run this application from the command line without Ant, try:
java -jar "C:\Documents and Settings\home\Documenti\NetBeansProjects\Tutto_Frame\dist\Tutto_Frame.jar"
Sull'icona del desktop metto il percorso: java -jar "C:\Documents and Settings\home\Documenti\NetBeansProjects\Tutto_Frame\dist\Tutto_Frame.jar" .. ma cliccando due volte sull'icona del desktop..il programma nn si apre.
Clicca col pulsante destro del mouse sul file "Tutto_Frame.jar", scegli "invia a", "Desktop", "crea collegamento".
Fine.
Magari prima fai un controllo, "start"->"esegui"->"cmd"
nella console così com'è scrivi:
java -jar "C:\Documents and Settings\home\Documenti\NetBeansProjects\Tutto_Frame\dist\Tutto_Frame.jar"
Controlla che non appaiano errori in esecuzione nella console.
davide_sana
07-10-2009, 09:24
Scusate la mia insistenza.
Il codice nn contiene errori e il clean and build viene effettuato senza alcuna segnalazione di errore. Nella cartella dist ho il mio file Tutto_Frame.jar con il simobletto di java. Creo il collegamento sul desktop. Ma il programma non si avvia nè cliccando sull'icona del desktop..nè cliccando sul file .jar contenuto nella cartella dist..ne scrivendo il percorso in "Esegui". Si avvia solo col classico ALT+F6 da NetBeans..
Perdonatemi ma sono un neofita di java..
Dove potrebbe stare il problema??
Qualora lo volessi avviare da prompt dei comandi..il comando finale sarebbe java Tutto_Frame.jar??
eseguendo questo comando dal prompt del dos
java -jar "C:\Documents and Settings\home\Documenti\NetBeansProjects\Tutto_Frame\dist\Tutto_Frame.jar"
appaiono degli errori?
davide_sana
07-10-2009, 13:44
Si..appaiono i seguanti errori:
C:\Documents and Settings\home\Documenti\NetBeansProjects\Tutto_Frame\dist>java
-jar tutto_frame.jar
Exception in thread "main" java.lang.NoClassDefFoundError: tutto_frame/Finestra
Caused by: java.lang.ClassNotFoundException: tutto_frame.Finestra
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 java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: tutto_frame.Finestra. Program will exit.
chiudi il prompt del dos, fai un clean and build - controlla che non risultino errori di compilazione nella finestra di output di netbeans - apri il prompt del dos, vai in C:\ ed esegui:
java -jar "C:\Documents and Settings\home\Documenti\NetBeansProjects\Tutto_Frame\dist\Tutto_Frame.jar"
Non spostare la directory di lavoro del prompt su "C:\Documents and Settings\home\Documenti\NetBeansProjects\Tutto_Frame\dist\" altrimenti netbeans non può rigenerare il file jar.
davide_sana
07-10-2009, 15:01
Ho fatto quanto hai detto. Sulla finestra di output nessun errore:
init:
deps-clean:
Deleting directory C:\Documents and Settings\home\Documenti\NetBeansProjects\Prova Main\build
Deleting directory C:\Documents and Settings\home\Documenti\NetBeansProjects\Prova Main\dist
clean:
init:
deps-jar:
Created dir: C:\Documents and Settings\home\Documenti\NetBeansProjects\Prova Main\build\classes
Created dir: C:\Documents and Settings\home\Documenti\NetBeansProjects\Prova Main\build\empty
Compiling 1 source file to C:\Documents and Settings\home\Documenti\NetBeansProjects\Prova Main\build\classes
compile:
Created dir: C:\Documents and Settings\home\Documenti\NetBeansProjects\Prova Main\dist
Building jar: C:\Documents and Settings\home\Documenti\NetBeansProjects\Prova Main\dist\Prova_Main.jar
Not copying the libraries.
To run this application from the command line without Ant, try:
java -jar "C:\Documents and Settings\home\Documenti\NetBeansProjects\Prova Main\dist\Prova_Main.jar"
jar:
BUILD SUCCESSFUL (total time: 5 seconds)
Andando in c:\ ed eseguendo il command java -jar "C:\Documents and Settings\home\Documenti\NetBeansProjects\Tutto_Frame\dist\Tutto_Frame.jar" ottendo però sempre l'errore visualizzato nel post precedente, ovvero:
C:\Documents and Settings\home\Documenti\NetBeansProjects\Tutto_Frame\dist>java
-jar tutto_frame.jar
Exception in thread "main" java.lang.NoClassDefFoundError: tutto_frame/Finestra
Caused by: java.lang.ClassNotFoundException: tutto_frame.Finestra
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 java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: tutto_frame.Finestra. Program will exit.
E' strano perchè la classe principale del tuo programma risulta essere tutto_frame.Finestra ma l'esecuzione del jar, che cerca appunto di richiamare quella classe, dice che non la trova. E' un tipo di inconsistenza che Netbeans rileva quando va a comporre il jar ma nel tuo caso sembra che non sia così.
Crea un nuovo progetto e riparti da zero.
Si può anche aggiustare il jar o andare a vedere effettivamente perchè non funziona ma direi che, essendo tu agli inizi, questa sia una questione da non affrontare.
davide_sana
09-10-2009, 12:04
Ho creato il progetto da zero..e tutto ha funionato! boh..avrò fatto qualche errore nel file precedente..strano..l'importante che adesso funziona.
Grazie
banryu79
13-10-2009, 10:27
E' un tipo di inconsistenza che Netbeans rileva quando va a comporre il jar ma nel tuo caso sembra che non sia così.
Sembra che a volte (non so da cosa dipenda) il comando "Clean & Build" non distrugga e ricostruisca per davvero il jar, ex-novo.
Pare lo faccia se si forza una modifica nel sorgente (ad esempio aggiungendo un innocuo spazio vuoto da qualche parte).
In passato ho esperito anche io simili problemi (vedi primi 6 messaggi) (http://www.hwupgrade.it/forum/showthread.php?t=2035042) sbattendo la testa uno o due giorni per poi scoprire che in effetti era tutto giusto solo che "Clean & Build" mi pigliava per i fondelli :D
Mi par di capire che a te non è mai capitato nulla del genere...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.