Hi, ich ein kleines Programm geschrieben. Die GUI ist mit NB zusammen geklicked (nichts aufwendiges). In diesem Programm verwende ich viele Bilder, wenn ich den COde via Netbeans ausführe funktioniert alles Wunderbar. Sobald ich das ganze als JAR ausführe wird nichts angezeigt. (Ich dachte also sofort an einen Pfad / Adressierungsfehler. Externe Resourcen in JARs einbinden ist ja immer etwas schwierig). Allerdings hat das auch nichts gebracht.
Problem:
Offensichtliches Problem: Es wird nichts angezeigt, wenn ich die VIA netbeans erzeugte JAR ausführe (ein Vorgang der sonst immer geklappt hat) Der Prozess wird allerdings erzeugt und steht im Taskmanager.
Die Java Console sagt dazu follgendes:
Also in Zeile 580 (von Mainframe) steht follgendes: harm_dir = new File(url_harm.toURI());
Die komplette Funktion sieht so aus:
Edit/Update: So habe jetzt etwas weiter geforscht und herausgefunden das ich ein ähnliches Problem schoneimal hatte. (Damals gings ums erzeugen einer Schrift was ganz simple mit einem InputStream ging in etwas so:
Allerdings brauch ich dieses mal umbedingt die Methoden der Klasse File. Weil /img/harmlos ein Verzeichniss ist und ich die Anzahl der darin befindlichen (Bild) Dateien +ein File array des gesammten Inhalts brauche. Hat jemand einen Lösungsvorschlag? Hab einen Totenpunkt
mfG QueAnw
Problem:
Offensichtliches Problem: Es wird nichts angezeigt, wenn ich die VIA netbeans erzeugte JAR ausführe (ein Vorgang der sonst immer geklappt hat) Der Prozess wird allerdings erzeugt und steht im Taskmanager.
Die Java Console sagt dazu follgendes:
Code:
D:\Coding\Java\tmp\JRauchfrei\dist>java -jar JRauchfrei.jar
Exception in thread "main" java.lang.IllegalArgumentException: URI is not hierarchical
at java.io.File.<init>(Unknown Source)
at jrauchfrei.GUI.Mainframe.initPics(Mainframe.java:580)
at jrauchfrei.GUI.Mainframe.initMyComponents(Mainframe.java:553)
at jrauchfrei.GUI.Mainframe.<init>(Mainframe.java:41)
at jrauchfrei.Main.main(Main.java:21)
Also in Zeile 580 (von Mainframe) steht follgendes: harm_dir = new File(url_harm.toURI());
Die komplette Funktion sieht so aus:
Java:
private boolean initPics() {
URL url_harm=getClass().getResource("/jrauchfrei/IMG/Harmloss");
File harm_dir;
try {
harm_dir = new File(url_harm.toURI());
harm=harm_dir.listFiles();
} catch (URISyntaxException ex) {
JOptionPane.showMessageDialog(this, "Could not open dir Harmlos\n"+ex, "Read IN", JOptionPane.ERROR_MESSAGE);
}
URL url_schreck=getClass().getResource("/jrauchfrei/IMG/Erschreckend");
File schreck_dir;
try {
schreck_dir = new File(url_schreck.toURI());
schreck=schreck_dir.listFiles();
} catch (URISyntaxException ex) {
JOptionPane.showMessageDialog(this, "Could not open dir Harmlos\n"+ex, "Read IN", JOptionPane.ERROR_MESSAGE);
}
int length=1;
if(harm!=null && schreck!=null){
length=harm.length+schreck.length;
whole=new File[length];
for(int i=0;i<harm.length;i++){
whole[i]=harm[i];
}
for(int x=0;x<schreck.length;x++){
whole[(x+harm.length)]=schreck[x];
}
}else
JOptionPane.showMessageDialog(this, "Could not create Directory: Harmlos\nor Directory: Erschreckend\nJRAUCHFREI wasn't able"
+ "to build a Gallerie", "Read IN", JOptionPane.ERROR_MESSAGE);
return (harm!=null && schreck!=null);
}
Edit/Update: So habe jetzt etwas weiter geforscht und herausgefunden das ich ein ähnliches Problem schoneimal hatte. (Damals gings ums erzeugen einer Schrift was ganz simple mit einem InputStream ging in etwas so:
Java:
InputStream test=Mainframe.class.getResourceAsStream("/jrauchfrei/IMG/Harmlos");
Allerdings brauch ich dieses mal umbedingt die Methoden der Klasse File. Weil /img/harmlos ein Verzeichniss ist und ich die Anzahl der darin befindlichen (Bild) Dateien +ein File array des gesammten Inhalts brauche. Hat jemand einen Lösungsvorschlag? Hab einen Totenpunkt
mfG QueAnw
Zuletzt bearbeitet: