Classpath Eclipse?

Hackepeter

Aktives Mitglied
Hallo,

versuche gerade Bilder in mein Projekt einzubinden. Vorher habe ich immer ein Package erstellt und die Bilder einfach dort reingezogen, allerdings sind die dann später nicht in der JAR-Datei, wenn ich die gesamte Anwendung exportiere. Also habe ich ein wenig gegooglet und gesehen, dass man immer mit getClass().getResource() arbeiten sollte anstelle eines Strings mit dem Pfad anzugeben.

Ich verwende Eclipse und habe in den Projekteinstellungen zum einen die JAR-Datei eingebunden als auch den Ordner src/lib als Klassenordner angegeben, allerdings erhalte ich beim Anlegen folgenden Objekts:
Java:
public class JBGPanel extends JPanel {
	private BufferedImage img;

	public JBGPanel(String image)
	{
		try {
			img = ImageIO.read(getClass().getResourceAsStream("/images/" + image));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	protected void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
	}
}

immer diese Exception:

Code:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
	at javax.imageio.ImageIO.read(Unknown Source)
	at main.JBGPanel.<init>(JBGPanel.java:19)
	at view.Mainwindow.<init>(Mainwindow.java:547)
	at main.Main.main(Main.java:26)

Was mache ich falsch?
 
G

Gast2

Gast
Wo genau liegen die Bilder? Sind die Bilder im erstellen jar Archiv?
Falls du die Bilder in einem images/ Ordner hast muss der Ordner bei Eclipse als source folder hinzugefügt sein, sonst werden die Dateien nicht mit ins jar Archiv gepackt.
 

Hackepeter

Aktives Mitglied
Also die Bilder befinden sich laut Paket-Explorer in der JAR Datei... hatte ursprünglich nen images Ordner, den habe ich zu einer JAR exportiert und die JAR hab ich dann in den libs Ordner kopiert...
 

X5-599

Top Contributor
Hat dein Bilder .jar den auch ein Verzeichnis (Package) das "images" heisst? Du sagst auch du hast das .jar in die Projekteinstellungen eingebunden. Dann müsste es im Projekt als "Referenced Libraries" auftauchen. Wenn das alles gegeben ist, sollte es klappen.
 

Michael...

Top Contributor
Vorher habe ich immer ein Package erstellt und die Bilder einfach dort reingezogen, allerdings sind die dann später nicht in der JAR-Datei, wenn ich die gesamte Anwendung exportiere.
Warum. Das ist eigentlich die gängigste Vorgehensweise. Man legt in seinem Projekt ein Package resources oder images an und packt da die Bilder rein. Beim Exportieren als jar kann man dann ja selbst bestimmen welches Packages und Daten mit exportiert werden soll.

Ich bin mir nicht sicher ob ich das richtig verstanden habe: Du hast jetzt ein jar mit den Bildern und dieses jar steckt im jar Deines Programms? Wenn das so ist, kommst Du über den üblichen Weg
Code:
getClass().getResource(...)
nicht an die Bilder ran.
 

Hackepeter

Aktives Mitglied
Sorry, dass ich das Thema nochmal ausgrabe.

Also folgendes: Ich habe die Klasse JBGPanel, welche von JPanel erbt, weil ich die Methode paintComponent überschreiben möchte um dem Panel eine Hintergrund Grafik zu geben.

Ich habe nun ein package mit dem Bild. Wie kann ich das nun machen?
Code:
getClass().getResource(...)
funktioniert hier irgendwie nicht.

So sieht es derzeit aus:

Java:
package main;

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;

import javax.imageio.ImageIO;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class JBGPanel extends JPanel {
	private BufferedImage img;

	public JBGPanel(String image)
	{
		try {
			img = ImageIO.read(getClass().getResourceAsStream("/images/" + image));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	protected void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
	}
}
 

Michael...

Top Contributor
Ich habe nun ein package mit dem Bild. Wie kann ich das nun machen?
Code:
getClass().getResource(...)
funktioniert hier irgendwie nicht.
Heißt genau? Es wird einfach nichts angezeigt, es wird eine Exception geworfen...

Bei Bildern habe ich getResourceAsStream noch nie benutzt. Meisten lade ich Bilder in etwa so:
Java:
img = new ImageIcon(getClass().getResource("/images/" + image)).getImage();
 

Hackepeter

Aktives Mitglied
Habs nun folgendermaßen:
Java:
package main;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class JBGPanel extends JPanel {
//	private BufferedImage img;
	private Image img;

	public JBGPanel(String imageName)
	{
		img = new ImageIcon(getClass().getResource("/images/" + imageName)).getImage();
//		try {
//			img = ImageIO.read(getClass().getResourceAsStream("/images/" + image));
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
	}

	protected void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
	}
}

Java:
contentPane = new JBGPanel("background.jpg");

Und folgende Exception erhalte ich:

Code:
Exception in thread "main" java.lang.NullPointerException
	at javax.swing.ImageIcon.<init>(ImageIcon.java:205)
	at main.JBGPanel.<init>(JBGPanel.java:21)
	at view.Mainwindow.<init>(Mainwindow.java:546)
	at main.Main.main(Main.java:26)

Der Bildname ist richtig und das Package existiert ebenfalls.

Woran könnte das nun liegen?
 

GGK_01

Bekanntes Mitglied
Ich habe das Problem auch.
Ich habe in Eclipse zum Package einen Ordner erzeugt und in diesen die Icons reinkopiert. Den Ordner habe ich dann als Source dazugefügt.

In der Runable Jar fehlet dann der Ordner....nachdem ich diesen manuell in das JAR gestellt habe gings.

GGK
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Eclipse - eigene Icons unter ClassPath Resource Java Basics - Anfänger-Themen 0
M Unterschied zwischen Classpath eines Eclipse Projektes und dem CLASSPATH? Java Basics - Anfänger-Themen 3
J classpath funktioniert nur in eclipse nicht auf der konsole?! Java Basics - Anfänger-Themen 6
G Eclipse, FatJar, Export, Classpath Java Basics - Anfänger-Themen 13
C classpath in eclipse Java Basics - Anfänger-Themen 2
L Best Practice Annotierte Klassen im Classpath herausfinden Java Basics - Anfänger-Themen 1
Michi__ Modulepath und Classpath fehlen Java Basics - Anfänger-Themen 2
A CLASSPATH Java Basics - Anfänger-Themen 4
L Classpath Alle Dateien im Classpath finden Java Basics - Anfänger-Themen 4
T Java - Zugriff nur mit CLASSPATH ? Java Basics - Anfänger-Themen 7
A Class not found - Jar liegt am classpath Java Basics - Anfänger-Themen 2
J .classpath und .project? Java Basics - Anfänger-Themen 1
M Classpath Befehl zum Kompilieren um die Option classpath erweitern. Java Basics - Anfänger-Themen 5
C Die CLASSPATH Variable Java Basics - Anfänger-Themen 1
S Classpath: Alle .jars innerhalb eines Ordners einbinden Java Basics - Anfänger-Themen 4
S Classpath Findet die Klasse nicht classpath setzen? Java Basics - Anfänger-Themen 8
T File aus Classpath verwenden Java Basics - Anfänger-Themen 3
F Classpath Dateien einbinden und Classpath durchsuchen Java Basics - Anfänger-Themen 2
Q Classpath mit Text Editor progammieren (Classpath) Java Basics - Anfänger-Themen 5
B Umgebungsvariable + Classpath Java Basics - Anfänger-Themen 2
V Erste Schritte Ausführen mit cmd + Classpath Java Basics - Anfänger-Themen 13
L Classpath anlegen Java Basics - Anfänger-Themen 6
P Classpath falscher Classpath, aber nicht immer Java Basics - Anfänger-Themen 19
H Classpath konnte nicht gefunden werden? Java Basics - Anfänger-Themen 2
C Java3d Classpath?!? Java Basics - Anfänger-Themen 11
M Classpath Jar nicht ausführbar, Classpath warscheinlich falsch Java Basics - Anfänger-Themen 10
M Classpath Java Basics - Anfänger-Themen 11
D Classpath compiler zur Laufzeit aufrufen & lib-classpath Java Basics - Anfänger-Themen 6
C Classpath Classpath in Jar Dateien Java Basics - Anfänger-Themen 15
J Classpath Java Basics - Anfänger-Themen 9
S ClassPath Java Basics - Anfänger-Themen 12
Z CLASSPATH + Packages Java Basics - Anfänger-Themen 6
J classpath Java Basics - Anfänger-Themen 10
S import - Anweisung; Setzen der Classpath Java Basics - Anfänger-Themen 2
J Frage zu jars/classpath Java Basics - Anfänger-Themen 7
K MySQL, Classpath, Java, MAC OSX Java Basics - Anfänger-Themen 3
D Classpath setzen Java Basics - Anfänger-Themen 4
J Classpath bestimmen, unter Windows 7 Java Basics - Anfänger-Themen 2
E Classpath Java Basics - Anfänger-Themen 4
B XOM...Classpath etc.??? Java Basics - Anfänger-Themen 2
L set Classpath für JDK Java Basics - Anfänger-Themen 2
L Lucene Classpath unter linux setzen Java Basics - Anfänger-Themen 8
B Classpath setzen - UNTER MAC OS X Java Basics - Anfänger-Themen 2
P ClassPath in Ubuntu Java Basics - Anfänger-Themen 4
S dauerhafte CLASSPATH-Umgebungsvariable Java Basics - Anfänger-Themen 3
E Classpath Frage Java Basics - Anfänger-Themen 2
C Textpad, classpath, java = Probleme Java Basics - Anfänger-Themen 21
F probleme mit classpath/auslagerung von klassen Java Basics - Anfänger-Themen 5
L Classpath-Probleme Java Basics - Anfänger-Themen 2
A Classpath im manifest einbinden? Java Basics - Anfänger-Themen 3
GilbertGrape findet jar aus Classpath nicht Java Basics - Anfänger-Themen 4
Z Ant java -classpath befehl Java Basics - Anfänger-Themen 2
G Wo fnde ich den classpath, um dort z.b. eine html abzulegen? Java Basics - Anfänger-Themen 13
G Classpath Problem Java Basics - Anfänger-Themen 4
F Classpath problem Java Basics - Anfänger-Themen 2
G Classpath . zum Xten Mal Java Basics - Anfänger-Themen 16
G Plugins einbinden und Classpath setzen Java Basics - Anfänger-Themen 4
F Classpath: Wichtig für Runnable JAR? Java Basics - Anfänger-Themen 2
G unbound classpath container Java Basics - Anfänger-Themen 1
J Anfänger-Frage zu jar-Files / Manifest.mf / Classpath Java Basics - Anfänger-Themen 16
G Java mit libs und classpath? Java Basics - Anfänger-Themen 5
P JAR erzeugen-CLASSPATH-Probleme Java Basics - Anfänger-Themen 4
S CLASSPATH in Windows Java Basics - Anfänger-Themen 8
G JDBC - Classpath - Ich werd wahnsinnig! Java Basics - Anfänger-Themen 18
N Frage zur Classpath-Variable in der Manifest-Datei Java Basics - Anfänger-Themen 7
S CLASSPATH-Fehler Java Basics - Anfänger-Themen 8
K classpath eintrag funktioniert nicht Java Basics - Anfänger-Themen 8
T [Dringend] Classpath-Problem Java Basics - Anfänger-Themen 3
G Probleme mit JAVA_HOME bzw. classpath Java Basics - Anfänger-Themen 12
W classpath / jar / Programm aus Konsole Starten Problem Java Basics - Anfänger-Themen 2
M Mal wieder der classpath. Java Basics - Anfänger-Themen 13
C Probleme mit .jar Datei und CLASSPATH Java Basics - Anfänger-Themen 2
G Classpath richtig setzen Java Basics - Anfänger-Themen 4
Q Classpath nach dem Deployen - Manifest-File Java Basics - Anfänger-Themen 4
T kopieren in den classpath Java Basics - Anfänger-Themen 4
F Frage zu Jars und Classpath Java Basics - Anfänger-Themen 2
D classpath setzen Java Basics - Anfänger-Themen 10
G Leidiges Thema Classpath Java Basics - Anfänger-Themen 5
C jar in jar - Classpath? Java Basics - Anfänger-Themen 12
D Applet starten (Classpath ? ) Java Basics - Anfänger-Themen 7
Z Jar-Archiv Classpath Variable Java Basics - Anfänger-Themen 6
L Classpath Java Basics - Anfänger-Themen 4
Q [javac] Zu blöd für -classpath? Java Basics - Anfänger-Themen 2
G Classpath JUnit geht net (?) Java Basics - Anfänger-Themen 11
A classpath zur Laufzeit erweitern Java Basics - Anfänger-Themen 4
H CLASSPATH unter j2sdk1.4.2_10 Java Basics - Anfänger-Themen 2
P Absolute Verzweiflung: Linux + Java + CLASSPATH Java Basics - Anfänger-Themen 8
G Wie muss classpath lauten? Package kompilieren/interpretiere Java Basics - Anfänger-Themen 4
K classpath zum 1001. Mal Java Basics - Anfänger-Themen 11
L Schon wieder ClassLoader bzw. Classpath :-( Java Basics - Anfänger-Themen 3
S classpath Java Basics - Anfänger-Themen 6
A Classpath oder Path? Java Basics - Anfänger-Themen 7
A Umgebungsvariable Classpath Java Basics - Anfänger-Themen 8
G Probleme mit Classpath Java Basics - Anfänger-Themen 4
X Classpath setzen Java Basics - Anfänger-Themen 5
G Problem mit classpath Java Basics - Anfänger-Themen 5
N Packages definieren bzw. zum Classpath hinzufügen Java Basics - Anfänger-Themen 4
G Classpath für Java in Suse 9 setzen Java Basics - Anfänger-Themen 2
R JAR wird nicht gefunden, ist aber im classpath. Java Basics - Anfänger-Themen 12
T Nerv! Packages und Classpath Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben