JFrame als JAR unsichtbar trotz Exception Handling

xX_QueAnw_Xx

Mitglied
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:
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:

XHelp

Top Contributor
Du kannst nicht einfach so File-Objekte mit Jar-Inhalten erzeugen.
Um einen anderen Vorschlag zu bekommen, solltest du vlt mal erklären was genau du machen willst und wieso du unbedingt File's brauchst.
 
G

Gastredner

Gast
Besorg dir die Position deines .jar (gab es meherere Threads zu, SuFu hilft) und öffne diese als ZipFile oder JarFile. Du kannst dann alle ZipEntrys bzw. JarEntrys auslesen und dir darüber die Daten des entsprechenden Objekts besorgen.
 

xX_QueAnw_Xx

Mitglied
Um einen anderen Vorschlag zu bekommen, solltest du vlt mal erklären was genau du machen willst und wieso du unbedingt File's brauchst.
Es handelt sich um eine Art gallerie. In den 2 Ordnern sind verschieden Kategorisierte Bilder. Da vom User neue hinzugefügt werden können ist die Anzahl für mich unbekannt. Deswegen habe ich die 2 Ordner zu File objekten gemacht, daraus Filearrays(harm,schreck) und dann mit .length die Anzahl bestimmt (für den Slider) und via picChange(int) wird dann das Bild auf einen JLabel geändert:
Java:
    private void picChange(int value) {
        if(harm==null && schreck==null)
            return;
        if( (selected==1) && (value<=harm.length) ){
            Image source              = new ImageIcon(harm[value-1].getPath()).getImage();
            Image scaledImage         = source.getScaledInstance(487,367,Image.SCALE_SMOOTH);
            Icon scaledIcon           = new ImageIcon(scaledImage);
            jLabel1.setIcon(scaledIcon);
        }
        else if ((selected == 2) && (value <= whole.length)) {
            Image source              = new ImageIcon(whole[value-1].getPath()).getImage();
            Image scaledImage         = source.getScaledInstance(487,367,Image.SCALE_SMOOTH);
            Icon scaledIcon           = new ImageIcon(scaledImage);
            jLabel1.setIcon(scaledIcon);
        }
Selected ist eine INT Variable in der Gespeichert wird welche Kategorie ausgewählt ist
 

xX_QueAnw_Xx

Mitglied
stimmt das dass ein Problem geben könnte, darüber habe ich noch gar nicht nachgedacht. Geht so etwas?
Wenn nicht werde ich wohl eine Art installertions Routine schreiben müssen. Die ein Verzeichniss erstellt bsp. c:\myapp und darin die Subordner und ihre eigene Dateien darein.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F JFrame wird unsichtbar Java Basics - Anfänger-Themen 2
fragenÜber(fragen); Turtle Grafik mit GUI (JFrame) Java Basics - Anfänger-Themen 3
E JFrame + Buffer-strategy Java Basics - Anfänger-Themen 8
I JFrame / Screen auf zweitem (definiertem) Monitor öffnen Java Basics - Anfänger-Themen 3
luggas89 Mit Jframe live zeichnen Java Basics - Anfänger-Themen 4
C mehrere JPanel in ein JFrame bringen Java Basics - Anfänger-Themen 9
B HSQL mit JFrame steuern Java Basics - Anfänger-Themen 4
D Wie Objekte im JFrame frei bewegen lassen? Java Basics - Anfänger-Themen 3
D Erste Schritte png in JFrame anzeigen? Java Basics - Anfänger-Themen 3
Thomathy Interface Wie schließt man ein anderes JFrame Fenster? Java Basics - Anfänger-Themen 6
D Probleme mit JFrame und der Größe Java Basics - Anfänger-Themen 8
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
S Kontrollieren ob jframe disposed ist Java Basics - Anfänger-Themen 3
Elyt JFrame in den Hintergrund verschieben Java Basics - Anfänger-Themen 3
OSchriever JFrame-Anwendungsfenster verschieben Java Basics - Anfänger-Themen 17
M Bild in JFrame Java Basics - Anfänger-Themen 1
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
W 2 JPanel in einem JFrame Java Basics - Anfänger-Themen 4
CptK Interface Klasse Frame (extends JFrame) aus anderer Klasse schließen Java Basics - Anfänger-Themen 7
S JFrame mit Hintergrundbild und Button Java Basics - Anfänger-Themen 4
S JFrame Java Basics - Anfänger-Themen 15
I JFrame proportional verkleinerbar machen Java Basics - Anfänger-Themen 3
B Java JFrame zeichnen Java Basics - Anfänger-Themen 4
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
T Auslagern von Methoden bei einem JFrame Java Basics - Anfänger-Themen 6
N Erste Schritte JFrame Caesar-Verschlüsselung Java Basics - Anfänger-Themen 23
B Erste Schritte Objekte von JFrame der Fenstergröße anpassen Java Basics - Anfänger-Themen 3
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
3 JFrame immer im Hintergrund Java Basics - Anfänger-Themen 1
F Interface JFrame mit if-Abfrage automatisch schließen lassen? Java Basics - Anfänger-Themen 3
R JFrame nicht verschiebbar Java Basics - Anfänger-Themen 2
T Wenn JFrame Textfelder Hintergrund Grün dann... (if) Java Basics - Anfänger-Themen 3
K Java JFrame mit Hintergrundbild erstellen Java Basics - Anfänger-Themen 1
Aruetiise Variablen JFrame und Variablen Java Basics - Anfänger-Themen 3
H Eclipse JFrame Java Basics - Anfänger-Themen 3
C Variablen von einem JFrame in einen anderen übertragen Java Basics - Anfänger-Themen 3
M Bild wird von JFrame nicht geladen Java Basics - Anfänger-Themen 12
I JFrame minimieren wenn anderes Programm minimiert wird Java Basics - Anfänger-Themen 1
K Methoden Methode starten wenn JFrame geöffnet wird Java Basics - Anfänger-Themen 2
D Erste Schritte JFrame Inhalte werden nicht angezeigt Java Basics - Anfänger-Themen 8
A Variablen In anderer Klasse auf Objekte von JFrame zugreifen Java Basics - Anfänger-Themen 1
B Ist MyFrame oder JFrame besser? Java Basics - Anfänger-Themen 3
Y JFrame sichtbarkeit Java Basics - Anfänger-Themen 4
KeVoZ_ Label auf JFrame willkürlich Positionieren Java Basics - Anfänger-Themen 2
Dechasa Interface JFrame mit mehreren Übereinander liegenden JPanel Java Basics - Anfänger-Themen 5
P JFrame nur einmal öffnen Java Basics - Anfänger-Themen 4
D JFrame - 10 Sekunden bis zum schließen warten. Java Basics - Anfänger-Themen 2
V Tastatur initialisieren JFrame Probleme Java Basics - Anfänger-Themen 6
J JPG in JFrame anzeigen lassen Java Basics - Anfänger-Themen 3
J JFrame ausgabe von Werten Java Basics - Anfänger-Themen 9
F GUI als Klasse oder extend JFrame? Java Basics - Anfänger-Themen 6
F JFrame resize verschiebt JPanel Java Basics - Anfänger-Themen 3
S Wieso wird mein JFrame transparent dargestellt? Java Basics - Anfänger-Themen 5
L [JFrame] Exception - woher? Java Basics - Anfänger-Themen 8
thomasbomme Grafikfehler JFrame- Cleartype Java Basics - Anfänger-Themen 1
GreyFox Arbeit mit JFrame Java Basics - Anfänger-Themen 8
T Erste Schritte 2 Codes zusammen fügen / Label in JFrame Java Basics - Anfänger-Themen 1
Z Zwei Images auf einem JFrame - Aber nur eins wird angezeigt! Java Basics - Anfänger-Themen 5
N Input/Output Wenn kein Input, dann Fehler anzeigen lassen im JFrame Java Basics - Anfänger-Themen 6
W 2 JPanels in 2Klasse in einem JFrame zusammenfügen Java Basics - Anfänger-Themen 12
dat_vin JFrame öffnet sich mehrmals Java Basics - Anfänger-Themen 6
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
M Rahmen für undekorierten JFrame Java Basics - Anfänger-Themen 6
S JPanel wird versetzt auf JFrame gelegt Java Basics - Anfänger-Themen 2
B Erste Schritte JFrame in Klasse auslagern Java Basics - Anfänger-Themen 4
H JFrame komplett schließen Java Basics - Anfänger-Themen 3
S Brauche hilfe bei Pong (JFrame) Java Basics - Anfänger-Themen 2
M hintergrund in jframe festlegen Java Basics - Anfänger-Themen 4
J JFrame Render Fehler - Warum? Java Basics - Anfänger-Themen 2
I komponenten werden in JFrame nicht richtig angezeigt Java Basics - Anfänger-Themen 1
E 2. JFrame erkennt 1. Frame Java Basics - Anfänger-Themen 6
D Best Practice JFrame im JFrame Java Basics - Anfänger-Themen 2
P Bild in JFrame Titelleiste Java Basics - Anfänger-Themen 7
S Erste Schritte Von JFrame in nächstes JFRame wechseln Java Basics - Anfänger-Themen 0
V JFrame aktualisieren Java Basics - Anfänger-Themen 6
S JFrame ist nicht schwarz Java Basics - Anfänger-Themen 5
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
S Interface JButton etc. wird in JFrame mit paint() nicht angezeigt Java Basics - Anfänger-Themen 6
S JFrame wird nicht "bemalt" Java Basics - Anfänger-Themen 2
M Unsichtbare Objekte in JFrame Java Basics - Anfänger-Themen 2
S Textdatei einlesen und JFrame füllen Java Basics - Anfänger-Themen 14
Sogomn JLabel in anderer Klasse zum JFrame hinzufügen Java Basics - Anfänger-Themen 2
B Drawline wird auf JFrame nicht angezeigt Java Basics - Anfänger-Themen 3
N Fokus setzen nachdem JFrame in Vordergrund geholt wurde Java Basics - Anfänger-Themen 7
K Methoden Objekt auf JFrame zeichnen Java Basics - Anfänger-Themen 16
S JFrame leeren Java Basics - Anfänger-Themen 6
X JFrame Fenster einzeln schließen Java Basics - Anfänger-Themen 2
J Klick auf Button -> JFrame öffnet sich erneut. & Datei lässt sich nicht löschen Java Basics - Anfänger-Themen 7
K Erste Schritte Jframe Im Jpanel Java Basics - Anfänger-Themen 4
D Kein Zugriff auf JFrame Java Basics - Anfänger-Themen 2
P JFrame Component automatische Größe verhindern Java Basics - Anfänger-Themen 2
D JFrame, Komponenten verschmiert. Java Basics - Anfänger-Themen 15
M Schriftfarbe in JFrame Java Basics - Anfänger-Themen 24
A JFrame läuft ewig? Java Basics - Anfänger-Themen 2
U JFrame durch ActionListener erweitern Java Basics - Anfänger-Themen 4
B Wie kann man auf das JFrame einer anderen Klasse zugreifen, etwas hinzufügen und entfernen?? Java Basics - Anfänger-Themen 3
N JFrame-Objekt in neuer Methode nicht verfügbar? Java Basics - Anfänger-Themen 3
A Frage zu: JFrame setLocationRelativeTo Java Basics - Anfänger-Themen 3
N Erste Schritte Prozessor Kernanzahl in JFrame Java Basics - Anfänger-Themen 3
DStrohma Transparenter JFrame Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben