Newsgroup: it.comp.java
Titolo: Problema con jar

Salve ragazzi, io ho creato un programma in java specificando in una classe, 
che contiene una icona in una label, le seguenti istruzioni (la cartella 
loghi contiene una delle icone usate):
   java.net.URL url = NomeClasse.class.getResource("loghi/logo1.jpg");
   System.out.println(url);
   Logo_label.setIcon(new javax.swing.ImageIcon(url));
Avviando il file con Run file dal menù RUN viene stampato sull'output la 
riga seguente
file:/C:/Documents%20and%20Settings/mio/NetBeansProjects/MSDTrader1/src/MSD_package/loghi/logo1.jpg
e tutto è OK.
Il problema è che se creo il jar col netbeans (con Clean and build project 
sempre dal menù Run) e lo avvio da riga di comando mi viene visualizzato:
C:\Documents and Settings\mio>java -jar "C:\Documents and 
Settings\mio\NetBeansProjects\MSDTrader1\dist\MSDTRADER.jar"
null
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at javax.swing.ImageIcon.<init>(Unknown Source)
        at 
MSD_package.Autenticazione_client.initComponents(Autenticazione_clien
t.java:148)
        at 
MSD_package.Autenticazione_client.<init>(Autenticazione_client.java:24)
        at 
MSD_package.Autenticazione_client$3.run(Autenticazione_client.java:220)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        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)
Come mai l'URL che mi stampa è NULL, ha legami con il classpath, se sì cosa 
devo fare?
Aiutatemi, grazie. 

il 02/04/2009 17.59, Scrive gio 43502696:

Con Eclipse dichiarerei la cartella  del progetto "loghi" nel buidpath, 
e quindi viene esportata anche nel jar, di conseguenza compare anche nel 
classpath durante l'esecuzione. Direi che in netbeans ci sia qualcosa di 
analogo.
-- 
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'

 ha scritto nel 
messaggio news:49d4e4fb$0$708$5fc...@news.tiscali.it...


 riesco a farlo partire, non capisco perchè.
Se nel jar c'e' già allora significa che non e' citata nel manifest alla 
voce Class-Path: ovvero nel file META-INF/MANIFEST.MF ci dev'essere una 
riga cosi':
Class-Path: loghi
Ma poi devi mettere getResource("logo1.jpg"); lasciando loghi/logo1.jpg 
il classloader si aspetta di trovare la cartella loghi nel file-system 
della directory corrente e non nel jar, come avviene quando utilizzi RUN.


 ha scritto nel 
messaggio news:49d4efbd$0$704$5fc...@news.tiscali.it...



Ciao,
il problema di caricare una risorsa, e in particolare da jar, ha dato
noie a molti.. dai un'occhiata a questo post, credo possa risolvere il
tuo problema:
http://just-share-it.blogspot.com/2007/10/come-caricare-una-risorsa-anche-dentro.html
Per renderti conto di che URL che stai creando, e capire dunque dove
può essere il problema, ti consiglio di cominciare sempre col
"caricare" la risorsa ".", ovvero la directory corrente, e stamparla
su schermo. Ti farai meglio un'idea sulla differenza dei diversi
metodi per caricare una risorsa.
Fammi sapere,
ciao!

 Aiutatemi, grazie.
Ciao,
il problema di caricare una risorsa, e in particolare da jar, ha dato
noie a molti.. dai un'occhiata a questo post, credo possa risolvere il
tuo problema:
http://just-share-it.blogspot.com/2007/10/come-caricare-una-risorsa-anche-dentro.html
Per renderti conto di che URL che stai creando, e capire dunque dove
puň essere il problema, ti consiglio di cominciare sempre col


 ciao!
Dai un'occhiata al link che ti ho detto e fai delle stampe di prove!
Se l'avessi già fatto avresti già risolto! Il mio consiglio, come
leggerai, è quello di usare ClassLoader.getSystemResource("...")
piuttosto che getClass().getResource("...").
Leggiti il post comunque!