Problem mit Class.getResource() in einer Jar-Datei

Status
Nicht offen für weitere Antworten.

comp89

Bekanntes Mitglied
hi
ich habe ein Problem mit diesem Code

Code:
try{
                        StringBuffer buffer = new StringBuffer();
                        BufferedReader in = new BufferedReader(new FileReader(new File(Kalender.class.getResource("history.dat").toURI())));
                        for (String b;(b = in.readLine()) != null;buffer.append(b + System.getProperty ("line.separator", "\r\n")));
                        in.close();
                        hist.setText(buffer.toString());
                        tab.addTab("Version History", hist);
                    }
                    catch(Exception exc){
                        JOptionPane.showMessageDialog(null, exc);
                    }

Solange ich das ganze in BlueJ ausführe, funktioniert es, wenn es in der JAR-Datei ist, wird mir in JoptionPane


java.lang.IllegalArgumentException : URI is not hierarchical

ausgegeben, das nötige File ist in der JAR - Datei vorhanden und URI wird benötigt, weil Class.getResource eine URL zurückgibt, aber new File(URI) nur eine URI nimmt, deswegen URL.toURI()

also wie mach ich das damit es auch in der JAR-Datei funktioniert
danke
 
geht so nicht

mit getResource kriegst du doch einen InputStream, daraus macht man doch kein File, sondern gleichen einen Reader?
 
sorry, ich dachte an

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)
 
toll :applaus:
damit hat es jetzt geklappt, ich hab die methode nur vorher nicht verwendet, weil ich noch nie mit inputstreams gearbeitet hab, nur reader
danke bleiglanz
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben