angelikamorgan
Mitglied
Hallo Zusammen,
das folgende Beispiel soll mein Problem verdeutlichen.
Die Anwendung funktioniert unter Eclipse ohne Probleme. Die Exception fällt, sobald ich die *.jar über die Kommandozeile aufrufe !
java -jar ./ImageTest.jar
So sieht die Ordnerstruktur aus:
http://img109.imageshack.us/img109/8159/imagepath1.jpg
Was mache ich falsch ?
Gruß
Angelika
Nachtrag: Das Bild existiert innerhalb der *.jar Datei !
das folgende Beispiel soll mein Problem verdeutlichen.
Code:
import java.awt.Dimension;
import java.io.File;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ImageTest
{
private JButton button = new JButton();
// private String seperator = System.getProperty("file.separator");
private String seperator = File.separator;
public ImageTest()
{
JFrame frame = new JFrame();
frame.setMinimumSize(new Dimension(100, 100));
frame.setResizable(true);
frame.add(getUI());
frame.setLocationRelativeTo(null);
frame.setSize(frame.getPreferredSize());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.pack();
}
private JPanel getUI()
{
JPanel panel = new JPanel();
ImageIcon imgURL = new ImageIcon(getFilePath("open.gif", "images"));
if (imgURL != null)
{
button.setIcon(new ImageIcon(getFilePath("open.gif", "images"), "Open"));
panel.add(button);
}
else
{
System.err.println("Couldn't find file!");
return null;
}
return panel;
}
private URL getFilePath(String image, String folder)
{
StringBuffer imagePath = new StringBuffer();
imagePath.append(folder);
imagePath.append(seperator);
imagePath.append(image);
URL imgURL = getClass().getResource(imagePath.toString());
return imgURL;
}
public static void main(String[] args)
{
ImageTest test = new ImageTest();
}
}
Die Anwendung funktioniert unter Eclipse ohne Probleme. Die Exception fällt, sobald ich die *.jar über die Kommandozeile aufrufe !
java -jar ./ImageTest.jar
Code:
Uncaught error fetching image:
java.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:99)
at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:113)
at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:240)
at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
So sieht die Ordnerstruktur aus:
http://img109.imageshack.us/img109/8159/imagepath1.jpg
Was mache ich falsch ?
Gruß
Angelika
Nachtrag: Das Bild existiert innerhalb der *.jar Datei !
Zuletzt bearbeitet: