Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480

    Problema file .jar principale di progetto

    Ciao a tutti,
    ho terminato un progetto in Java , utilizzando netbeans.
    Sto riscontrando un problema: il software progettato in netbeans funziona correttamente mentre se provo ad aprirlo dal file jar che si trova nella directory "dist" del progetto, non accade nulla, cioè non me lo apre.
    Potreste darmi qualche consiglio per risolvere questo problema?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    se provo ad aprirlo dal file jar che si trova nella directory "dist" del progetto, non accade nulla
    Chiarisci il "aprirlo" .... doppio-click sul jar? Hai provato da console? java -jar nome.jar
    Almeno così vedi più chiaramente se ci sono eccezioni e comunque ...... tiro ad indovinare (richieste di questo tipo sui forum sono al 99% per questo motivo): nel codice hai referenziato "risorse" (es. tipicamente immagini ma anche altro) in modo inappropriato e che funziona solo nel IDE.

    Altro scenario extra: la tua applicazione necessità di librerie esterne ma il tuo jar non è stato creato correttamente per usarle se viene "lanciato" direttamente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    ciao andbin, allora:

    Quote Originariamente inviata da andbin Visualizza il messaggio
    Chiarisci il "aprirlo" .... doppio-click sul jar?
    Esatto, doppioclick.
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Hai provato da console? java -jar nome.jar
    Almeno così vedi più chiaramente se ci sono eccezioni
    Ho provato dal prompt, spostandomi all'interno della sottodirectory "dist" e facendo java -jar nome.jar ed ecco il risultato:

    SEVERE: null
    java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)
    at pve.PVE.initComponents(PVE.java:451)
    at pve.PVE.<init>(PVE.java:68)
    at pve.PVE$21.run(PVE.java:1849)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(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.doIntersectionPri vilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilter s(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(U nknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

    che significa ?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    SEVERE: null
    java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)

    che significa ?
    Significa proprio quello che pensavo. Hai creato un ImageIcon da un URL e questo url l'hai ottenuto presumo da un getResource. A quest'ultimo hai passato una specifica che:
    - è inappropriata es. "src/blabla...." (se l'IDE mette in classpath la directory del progetto, è corretto ... ma solo nel IDE!)
    oppure
    - è sensata/corretta ma per qualche motivo non è finita nel jar nel posto giusto o proprio non è nel jar.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    codice:
    at pve.PVE.initComponents(PVE.java:451)
            at pve.PVE.<init>(PVE.java:68)
            at pve.PVE$21.run(PVE.java:1849)
    451, 68, 1849...sono le righe all'interno della classe PVE in cui si verifica l'errore ?

    Non riesco a trovare l'errore, poichè ho tolto tutti i riferimenti alla cartella src, poicè ho utilizzato questa classe:
    codice:
    package immagini;
    
    import java.awt.Image;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    import java.net.URL;
    
    import javax.imageio.ImageIO;
    import javax.swing.ImageIcon;
    
    public class ImageLoader {
    
        public static BufferedImage loadBufferedImage(String path) throws IOException {
            return ImageIO.read(ImageLoader.class.getResource(path));
        }
    
        public static Image loadImage(String path) throws IOException {
            return loadIcon(path).getImage();
        }
    
        public static ImageIcon loadIcon(String path) throws IOException {
            return new ImageIcon(ImageLoader.class.getResource(path));
        }
    
        public static URL getIconURL(String name) {
            return ImageLoader.class.getResource(name);
        }
    }
    caricando le immagini in questo modo:
    codice:
    Icon imgButton1 = ImageLoader.loadIcon("immagine1.png");
            button1.setIcon(imgButton1);
    Ultima modifica di roquentin; 20-04-2015 a 11:32

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    451, 68, 1849...sono le righe all'interno della classe PVE in cui si verifica l'errore ?
    pve.PVE$21.run presumo sia il classico run() del Runnable (definito come anonymous inner class, come si deduce dal $21) passato a invokeLater

    pve.PVE.<init> è il costruttore della tua classe

    pve.PVE.initComponents è il tuo metodo initComponents, invocato dal costruttore
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ok, avevo inserito dei riferimenti ad un JButton che non servivano a nulla.

    Grazie 1000 andbin

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    Ok, avevo inserito dei riferimenti ad un JButton che non servivano a nulla.
    Questo però cosa c'entra con il null passato a ImageIcon ? Cioè .. è quello che pensavo oppure no?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.