Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Problema con file jar eseguibile

    Innanzi tutto un saluto ai membri del forum visto che questo è il mio primo messaggio!

    vengo subito al mio problemino... ho scritto un'apllicazione java swing che contiene un bel pò di classi, di immagini e qualche font che viene richiamato ed utilizzato dal programma, ora ho quindi la necessità di creare un file jar avviabile con il semplice doppio click...

    Riesco a creare il file jar che si avvia da linea di comando, ma lo stesso jar NON si avvia col doppio click
    Ho avviamente creato il file MANIFEST.MF....


    Cosa sbaglio??

  2. #2
    Se il manifest e' corretto e stai usando windows fai
    click destro sul file .jar
    sul menu' a tendina se trovi "apri con.."
    vacci col mouse sopra e sull'altro menu' a tendina se trovi
    "Java(TM) 2 Platform Standard Edition binary"
    cliccaci sopra altrimenti scegli java.exe sulla directory di installazione JDK o JRE
    e successivamente si aprira' col doppio click.
    Dovrebbe funzionare!!
    Ma per fare questo puoi usare anche un file .bat su windows
    o .sh(se non ricordo male) su linux.
    ciao
    Nulla, ma e' sempre qualcosa.

  3. #3
    ok, grazie, appena torno sul PC dove ho sviluppato l'applicazione provo!

    Ancora una cosa però, che è quella che penso sia la causa del problema...
    Secondo me il problema è la mancata chiusura dell'applicazione una volta eseguita col doppio click; mi spiego: appena creato il file .jar se ci clicco sopra 2 volte l'applicazione parte correttamente, ma una volta chiusa se tento di rilanciarla non si avvia +, cioè come se il processo precente non fosse stato chiuso
    Come già detto nel primo post se invece lancio l'applicazione da riga di comando tutto funziona: ogni volta che la chiudo questa si "chiude veramente" e mi permette di rilanciarla...


    Spero di essermi spiegato e di non aver detto una caxxata colossale!!!

  4. #4
    Dalla riga di comando vengono terminati tutti i processi che sono stati avviati
    dalla sessione del prompt(ma non sempre).
    Riguardo al fatto che il programma che hai non si riavvia successivamenta
    e' sicuramente un errore di programmazione.
    Non so mi viene in mente se chiudi la finestra principale dell'applicazione
    con il metodo di JFrame setDefaultCloseOperation(true).
    Si deve vedere il codice cmq.
    Ciao
    Nulla, ma e' sempre qualcosa.

  5. #5
    l'applicazione è composta da un JFrame principale al quale vengono aggiunte diverse schermate (JPanel) a seconda delle scelte fatte, schermate che permettono anche di "tornare indietro" nelle proprie scelte ricaricando jpanel "superiori" (in realtà i JPanel vengono di volta in volta rimossi e riaggiunti, quindi visualizzati tramite i metodi validate() e repaint()).

    detto questo, che forse è inutile , il JFrame principale lo chiudo e lo visualizzo tramite i seguenti 2 comandi:

    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
    this.setVisible(true);

    dove "this" è la la mia classe che estende JFrame.

  6. #6
    Si e' vero setDefaulCloseOperation( JFrame.EXIT_ON_CLOSE) ho avuto
    un lapsus con un argomento booleano!!!
    Allora non so cosa dirti bisosogne vedere il codice...
    Prova a realizzare un file .bat con dentro scritto "java -jar mioFile.jar"
    e usi un collegamento del file .bat dove vuoi.
    Nulla, ma e' sempre qualcosa.

  7. #7
    umh... cosa "dovresti vedere" del codice???
    Perchè l'applicazione è composta dal almeno una ventina di classi e postare tutto il codice, oltre che inutile, sarebbe assurdo!!! :rollo:


    Volevo evitare il .bat perchè se non sbaglio deve contenere la directory assoluta dell'applicazione, e siccome questo prog devi finire su diverse macchine ed installato "a caso" dall'utente diventa un problema...

  8. #8
    Bhe la parola chiave riservata this e' superflua, controlla se ci sia da qualche parte
    un setVisible(false) che lascia successivamente aperta la risorsa JFrame.
    Nulla, ma e' sempre qualcosa.

  9. #9
    ti ho risposto appena prima che scrivessi il tuo post... azz sembra di essere quasi in chat!!!

    No, sicuro al 100% di non avere un setVisible(false) da nessuna parte, anche perchè questo medoto lo rischiamo solo nella classe che estende il JFrame, le altre classi creano i vari pannelli delle varie schermate che poi (tramite i vari ascoltatori) vengono richiamati e aggiunti.

    Ok che il "this" è superfluo, ma non dovrebbe essere "dannoso"....

  10. #10
    Ci ho provato ad aiutarti ...
    Nulla, ma e' sempre qualcosa.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.