Datei in jar-File lesen

  • Hallo Leute,

    Ich habe ein Problem damit, eine Datei zu lesen, die sich gemeinsam mit dem .class file in einem jar-Archiv befindet. Das Programm liest an einer Stelle einfach die erste Zeile der Datei "key.txt" ein:

    Code
    public static String readKey() throws IOException {
            File f = new File("key.txt");
            BufferedReader fr = new BufferedReader(new FileReader(f));
            return fr.readLine();
        }


    Wenn ich nun sowohl die .class Datei als auch key.txt in ein jar-File packe, liest das Programm nicht die key.txt im Archiv, sondern sucht im Ordner, in dem sich das Archiv befindet, nach key.txt. Wird diese nicht gefunden, bekomme ich eine (klarerweise) eine IOException, obwohl die benötigte Datei an sich im jar-Archiv enthalten ist.

    Kann mir jemand erklären, wie ich dem Programm klar mache, dass es auch das Archiv nach key.txt durchsuchen soll? :) (evtl. eine bestimmte Zeile im Manifest?) Aus den guides auf java.sun.com/docs bin ich irgendwie nicht schlau geworden.

    mfg Erdös

    Sicher is des ane: A Apfel is ka Banane

  • aus meiner abgabe für das 5. beispiel in security (machst du das auch, oder? ;) :(

  • danke für die antwort ersteinmal

    Zitat von Paulchen

    aus meiner abgabe für das 5. beispiel in security (machst du das auch, oder? ;) )

    Erraten :).

    Zitat von Paulchen
    Code
    InputStream stream=Main.class.getResourceAsStream("/key.txt");

    Kannst du mir erklären wie du zu der Zeile kommst? Bei mir kann der Compiler nichts mit "Main" anfangen - "Main can not be resolved to a type" :confused:

    danke

    Sicher is des ane: A Apfel is ka Banane

  • Zitat von Erdös-Index 97

    Kannst du mir erklären wie du zu der Zeile kommst? Bei mir kann der Compiler nichts mit "Main" anfangen - "Main can not be resolved to a type" :confused:

    nimm statt Main einfach irgendeine klasse in deiner jar-datei. ich hab Main genommen, weil in der klasse Main die methode main steht, und key.txt aus dieser klasse heraus ausgelesen wird.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!