Da progetto eclipse a eseguibile .exe?

di il
4 risposte

Da progetto eclipse a eseguibile .exe?

Raga, io ho seguito questa guida per creare il file .exe del mio programma:
http://it.wikihow.com/Creare-un-File-Eseguibile-in-Eclipse
ma l'unico problema è che quando vado ad avviare il file .exe oppure il file .jar non mi si visualizzano le immagini che stanno nel jframe... come posso sistemare?

4 Risposte

  • Re: Da progetto eclipse a eseguibile .exe?

    palestrato ha scritto:


    non mi si visualizzano le immagini che stanno nel jframe...
    Questa è un'altra questione. Non c'entra direttamente con il fatto di aver creato un eseguibile nativo. Avresti potuto avere lo stesso problema anche senza arrivare a exe nativi.

    La questione è: come viene referenziata e caricata la immagine? Intendo dire: con quale API (Il toolkit di AWT? ImageIcon? ImageIO?) e soprattutto passando cosa: un java.io.File? Altro?

    Se ad esempio hai fatto:

    ImageIcon myIcon = new ImageIcon("icona.png");

    questo di per sé è assolutamente corretto, tecnicamente. Solo che è una specifica direttamente sul file-system (non può cercare icona.png dentro un jar!) e oltretutto relativa alla directory "corrente". Se chi/cosa lancia la applicazione non controlla e fissa la directory corrente (o non c'è quel file), chiaramente qualcosa poi non funziona.

    Se le immagini sono fisse e "fanno parte" della applicazione, innanzitutto andrebbero messe in un package specifico e poi vanno trattate come "risorse" usando i getResource/getResourceAsStream di java.lang.Class.
  • Re: Da progetto eclipse a eseguibile .exe?

    Okay penso che ci ho capito poco ahah ti faccio un esempio di codice allora:
    
    		ImageIcon icon = new ImageIcon(".\\img\\pc.png");
    		JLabel computer = new JLabel("", icon, JLabel.LEFT);
    		ImageIcon icon2 = new ImageIcon(".\\img\\server_attivo.gif");
    		JLabel animazione = new JLabel("", icon2, JLabel.CENTER);
    come dovrei modificare?
  • Re: Da progetto eclipse a eseguibile .exe?

    palestrato ha scritto:


    		ImageIcon icon = new ImageIcon(".\\img\\pc.png");
    		ImageIcon icon2 = new ImageIcon(".\\img\\server_attivo.gif");
    Questi non sono sbagliati, di per sé ma: a) sono relativi alla directory corrente e b) le due immagini non possono stare dentro un jar perché non verrebbero trovate.

    La soluzione è trattare le immagini come "risorse" secondo quanto inteso dai getResource/getResourceAsStream di Class.
    Se hai una TuaClasse in un certo package e metti le immagini in quello stesso package, puoi fare:
    ImageIcon icon = new ImageIcon(TuaClasse.class.getResource("pc.png"));
    TuaClasse.class è un class "literal". Se sei in un costruttore/metodo di istanza di TuaClasse puoi usare anche this.getClass(). L'importante è che alla fine risulti il java.lang.Class relativo alla classe il cui package fa da base per la immagine.

    E a quel punto le immagini possono stare dentro un jar, insieme ai .class .
  • Re: Da progetto eclipse a eseguibile .exe?

    Grazie mille!
Devi accedere o registrarti per scrivere nel forum
4 risposte