Newsgroup: it.comp.java
Titolo: Recuperare da un JAR le risorse

Ho messo tutte le risorse del programma che ho realizzato in un file jar,
dalle immagini al file *.class. Come si accede a queste risorse dal codice?
Devo utilizzare ResourceBundle, Locale ecc. ? Sapete dove posso trovare un
tutorial o qualcosa di simile? Mille grazie. 

dalle immagini al file *.class.
In passato (anche recentemente) sono già stati indicati alcuni modi per 
caricare (ad esempio) immagini: prova a fare una ricerca con
http://groups.google.com/
Curiosità: a cosa ti serve accedere ai file .class?
-- 
Ciao
	Fabrizio C.

Riporto dai miei appunti raccolti da varie risposte sul ng. Gli esempi si
riferiscono al caricamento di una gif, ma possono essere estesi a qualsiasi
altra risorsa.
Come caricare una immagine salvata all'interno del file JAR che comprende
tutta l'applicazione.
Per il JDK 1.1
String imgName = "AnImage.jpg";
URL imgURL = getClass().getResource(imgName);
Toolkit tk = Toolkit.getDefaultToolkit();
Image img = null;
try
{
  MediaTracker m = new MediaTracker(this);
  img = tk.getImage(imgURL);
  m.addImage(img, 0);
  m.waitForAll();
}
catch (Exception e)
{
  e.printStackTrace();
}
Da Applet:
Image img = null;
try
{
     MediaTracker m = new MediaTracker(this);
     InputStream is = getClass().getResourceAsStream("AnImage.gif");
     //
     // if your image is in a subdir in the jar then
     // InputStream is =
getClass().getResourceAsStream("images/AnImage.gif");
     // for example
     //
     BufferedInputStream bis = new BufferedInputStream(is);
     byte[] byBuf = = new byte[10000]; // a buffer large enough for our
image
     //
     // can be
     // byte[] byBuf = = new byte[is.available()];
     // is.read(byBuf); or something like that...
     //
     int byteRead = bis.read(byBuf,0,10000);
     img = Toolkit.getDefaultToolkit().createImage(byBuf);
     m.addImage(img, 0);
     m.waitForAll();
}
catch(Exception e)
{
 e.printStackTrace();
}
Da JDK 1.2 o superiori:
URL url = this.getClass().getResource("myIcon.gif");
ImageIcon  image = new ImageIcon(url);
Metodo alternativo che pesca l'immagine come una URL relativa ad un file
JAR. Funziona solo quando il progetto è stato racchiuso in un JAR.
URL url = new URL("jar:file:Proximity.jar!/com/loydnet/proximity/logo.gif");
java.awt.Image image = Toolkit.getDefaultToolkit().getImage(url);
In questo esempio i file da caricare è logo.gif ed è contenuto nella
directory com/loydnet/proximity all'interno del file Proximity.jar
--
Ciao.
Greybear

 tutta l'applicazione...
aiuto preziosissimo, molte grazie!!! 

 Curiosità: a cosa ti serve accedere ai file .class?
Il programma che sto sviluppando è avviabile con dopppio clic su un sistema
Mac OS X (il quale supporta a livello di core le app java). Un programma di
questo tipo, una volta terminato il "build", viene organizzato in un
"package". Il package esternamente sembra un semplice file avviabile, ma in
realtà è esplorabile come una qualsiasi cartella. All'interno si trovano
compresse in un JAR tutte le risorse necessarie all'esecuzione: immagini,
suoni, file .class, stringhe di localizzazione ecc. A me in realtà interessa
solo poter accedere alle immagini, mentre il sistema deve accedere ai
.class. Scusa se mi sono dilungato, era solo per chiarezza. Ciao