Jar-File: Problem mit Text-Files

Status
Nicht offen für weitere Antworten.
S

Se7en

Gast
Hi,

Ich hab zu meinem Projekt ein Jar-File erstellt. Das hat alles problemlos funktioniert. Aber mein Programm muss einige Konfigurationsdateien einlesen, welche im Jar-File im Unterordern "config" sind.
Aber sobald ich das Jar-File starte erscheint zwar die Applikation, aber die Text-Files, welche im config-Ordner sind, werden nicht gelesen bzw. gefunden :?

Muss ich da irgendwas beachten?

Die Files lese ich so ein:
Code:
...
String qryPath = "config/drivers.txt"; 
BufferedReader fileBuf = new BufferedReader(new FileReader(qryPath));
...

Das Jar-File hab ich so erstellt:
Code:
jar cvfm Programm.jar manifest *.class *.java *.gif

Den Unterordner hab ich dann manuell (via WinRar) eingefügt.

Wie gesagt, wenn ich die Applikation normal starte (z.B. durch Eclipse) werden die .txt Files gelesen, aber das Jar-File erkennt diese nicht!

Ich bin für jeden Tipp dankbar!
 

Andre1002

Mitglied
Hallo,

also mein kleines Beispiel funktioniert so, kannst es ja mal versuches auf Dein Problem zu übertragen...

Code:
try{
    InputStream stream = this.getClass().getResourceAsStream("text/test.txt"); //Die Datei als Resource laden
    byte[] b = new byte[stream.available()];
    stream.read(b);        //Die Bytes aus dem InputStream in ein byte[]
    stream.close();
    String t = new String(b);        //und daraus dann einen String machen
    System.out.println("Text aus Datei: "+t);
  }
  catch(Exception ex){
    ex.printStackTrace();
  }
}

Gruß

Andre1002
 
S

Se7en

Gast
Danke für die Tipps.
Die .txt Files sind schon im Jar (config/irgendwas.txt) enthalten.
Gibt es nicht eine einfachere Möglichkeit als ein "InputStream " zu erstellen?
Meine Applikation umfasst mehrere Klassen und ca. 3000 Zeilen Code. Schon allein wegen dem, möcht ich die Klassen in Final-Release eigentlich nicht ändern.
Ich mein da muss es doch eine Möglichkeit geben, ein Text-File im selben Jar-File anzusprechen, oder?!? :?:
 

DP

Top Contributor
geh mal mit dem code hier deine jar durch, dann siehste ob der das findet:

Code:
import java.io.*;
import java.util.*;
import java.util.jar.*;

public class test {

  private static int i = 0;

   public static void main (String args[]) throws IOException
   {
     JarFile jarFile = new JarFile("D:/classes/vbjorb.jar");
     Enumeration enum = jarFile.entries();
     while (enum.hasMoreElements())
     {
       process(enum.nextElement());
     }
   }

   private static void process(Object obj) {
     i++;
     JarEntry entry = (JarEntry)obj;
     String name = entry.getName();
     long size = entry.getSize();
     long compressedSize = entry.getCompressedSize();
     System.out.println(i + "\t" + name + "\t" + size + "\t" + compressedSize);
   }


}
 

Andre1002

Mitglied
Versuche doch mal statt dem FileReader bei Dir den InputStreamReader:

Code:
BufferedReader fileBuf = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream(qryPath)));

das musst Du aber auch Deinen Code umbauen, aber eine andere Möglichkeit kenne ich nicht.


Andre1002
 
S

Se7en

Gast
Danke für eure Antworten!
DP's Routine hat die .txt-Files gefunden.
Naja, falls es nicht anders geht muss ich halt es so versuchen wie es Andre1002 mir vorgeschalgen hat.

Jedenfalls Danke für eure Statements!
 
G

Guest

Gast
So ich hab nun alles so ersetzt wie du Andre1002 es gesagt hast. Und siehe da, es funktioniert :)

Nun hab ich aber noch ein Problem: Wie kann ich es realisieren, dass ich auch ein File aus dem Jar-File löschen kann, und ein neues (im Jar) erstellen kann?

Ein Ausschnitt von dem bisherigen Code für den Output:


Code:
File f = new File("config/data.txt");
//So geht das leider nicht:
//Class res = getClass();
//File f = new File(res.getResource("config/data.txt").toString())  		

if(f.exists())        //Falls das File existiert -> loeschen	
   f.delete(); 				

 f.createNewFile(); 
FileOutputStream fos = new FileOutputStream(f); 
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write("bla");
osw.close(); fos.close();

Für einen weiteren Tipp bin ich sehr dankbar!
 

odysseus

Bekanntes Mitglied
ich hab das gleiche problem. zuerst hatte ich das probllem nur beim laden der bilder (aus dem jar), aber jetzt gehts auch um das lesen einiger .ini files die ich in meinem programm verwende.

das mit den bildern habe ich so gelöst:

http://www.java-forum.org/de/viewtopic.php?t=637&start=0&postdays=0&postorder=asc&highlight=file+jar

kann jemand das mit den Dateien erklären ?

Wieso instanziert ihr getClass(), welche Klasse muss das sein ?

zum laden der ini-dateien (als Property) brauche ich einen InputStream..

danke für Tipps.
 

odysseus

Bekanntes Mitglied
es funzt jetzt. im prinzip so wie es schon gesagt wurde. komisch wieso es bei mir nicht gleich ging...

Code:
Inputstream in = ClassLoader.getSystemResourceAsStream("datei.txt");

schon komisch das beim exportieren in ein jar plötzlich nix mehr geht..
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Read JSON File Problem Allgemeine Java-Themen 9
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7
C Input/Output Problem bei Datei verschiebung mit File.move und Paths.get() Allgemeine Java-Themen 26
N Problem beim lesen einer File in JAR-File Allgemeine Java-Themen 3
S txt File Problem Allgemeine Java-Themen 12
hdi Problem mit File.seperator und Pfaden Allgemeine Java-Themen 4
U2nt .jar File Problem Allgemeine Java-Themen 20
T CP Problem: Webstart + Logging properties file + eigener Handler Allgemeine Java-Themen 7
S kleines File problem Allgemeine Java-Themen 13
egrath Performance Problem mit File-I/O Allgemeine Java-Themen 6
G Problem mit Leerzeichen im Pfad bei File und getResouce Allgemeine Java-Themen 2
N Problem mit Jar File Allgemeine Java-Themen 2
F Problem mit Soundwiedergabe in Jar-File Allgemeine Java-Themen 2
Luma Performance-Problem mit RandomAcces File Allgemeine Java-Themen 4
W Jar-File Start nur über Terminal Allgemeine Java-Themen 13
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
S Umstellung von File auf Path - Probleme mit Stream Allgemeine Java-Themen 5
C jar File mehrfach aufrufen (als Windows Dienst) Allgemeine Java-Themen 5
N File Path mit Variablen angeben Allgemeine Java-Themen 1
izoards Zugriff auf gemeinsame Ressource (CSV-File) Allgemeine Java-Themen 3
S Class File Editor -> Source not found Allgemeine Java-Themen 4
F jar File ausführen Allgemeine Java-Themen 14
M File Binary Representation Allgemeine Java-Themen 1
N jar File auf Mac mit Doppelklick starten Allgemeine Java-Themen 5
O Input/Output java.io.File beenden Allgemeine Java-Themen 5
G File not found - nach dem Kompilieren Allgemeine Java-Themen 6
T Jar File zu exe... Allgemeine Java-Themen 3
M Foreign Memory API / Memory-Mapped File Allgemeine Java-Themen 0
R Delete files before creating new from temp using Java file method Allgemeine Java-Themen 1
S File lesen und schreiben Java 6 Allgemeine Java-Themen 2
T String-Manipulation beim Ablauf in Eclipse und als JAR-File Allgemeine Java-Themen 8
F Input/Output FileNotFoundException, obwohl File existiert Allgemeine Java-Themen 5
G Excel File öffnen, in Zelle schreiben, abspeichern Allgemeine Java-Themen 6
L JAR-File auf Ilias (LMS) laufen lassen Allgemeine Java-Themen 0
ralfb1105 Classpath Directory fuer Properties File Allgemeine Java-Themen 2
L File beim Kopieren in einen anderen Ordner umbenennen Allgemeine Java-Themen 6
J File in Package erstellen & lesen mit Programmstart in externe Projekt Allgemeine Java-Themen 3
I File ausführen und mein Programm bearbeiten lassen Allgemeine Java-Themen 11
A File lesen Codierung Charset Allgemeine Java-Themen 5
J .java-Dateitext Compile zur Laufzeit ohne File Allgemeine Java-Themen 15
M Key-File im selben Ordner speichern? Allgemeine Java-Themen 18
I TrueZip add file to archive Allgemeine Java-Themen 10
T Probleme mit dem Pfad zum Propertie file Allgemeine Java-Themen 7
J ftp - delete file ohne appache Allgemeine Java-Themen 8
X Klassen File-Klasse wird als Directory markiert Allgemeine Java-Themen 8
T ImageIO.read -> Can`t read input file Allgemeine Java-Themen 11
C Swing File[] als klickbare links in irgendeinem Swing Element Allgemeine Java-Themen 3
H Kennt sich jemand mit Eclipse und dem Thema Jar-File aus ? Allgemeine Java-Themen 6
H Laden einer (Resourcendatei) aus einem Jar-File Allgemeine Java-Themen 17
C Authentifizierung mit java.nio.file? Allgemeine Java-Themen 5
L CSV File lesen, in ArrayList speichern und ausgeben Allgemeine Java-Themen 3
M xlsx File auslesen Exception occured Allgemeine Java-Themen 13
offi Drag and Drop mehrerer File aus Explorer in JTable Allgemeine Java-Themen 1
G Java/LibGDX File Loading Exception Allgemeine Java-Themen 2
Cromewell JavaFX FXML-File lädt unter Ubuntu nicht Allgemeine Java-Themen 7
D Java Anwendung mit dll File Allgemeine Java-Themen 5
AssELAss Log4j Logging Ausgabe für jede Klasse in seperates File Allgemeine Java-Themen 2
thet1983 Input/Output read properties file from classpath Allgemeine Java-Themen 3
J Umwandeln von URL zu File und danach kopieren geht nicht Allgemeine Java-Themen 1
J Properties file ändern Allgemeine Java-Themen 12
S Executable Jar File startet nicht unter Windows 10 Allgemeine Java-Themen 3
B Objekte anhand von Properties file Allgemeine Java-Themen 41
Dechasa Input/Output Write into File Allgemeine Java-Themen 2
N Maven ObjectMapper Error wenn das File gespeichert wird Allgemeine Java-Themen 0
H Security Manager (IIOException: Can't read input file!) Allgemeine Java-Themen 2
H File.listFiles() funktioniert nicht... Allgemeine Java-Themen 10
X Zeile unter einer bestimmen Zeile hinzufügen(File) Allgemeine Java-Themen 1
F Open source file übersetzen Phython -> Java Allgemeine Java-Themen 4
C file.delete() funktioniert bei zweiten aufruf nicht mehr Allgemeine Java-Themen 3
M Desktop jar File icon Ändern? Allgemeine Java-Themen 14
O Sax-Parser ließt XML-File doppelt Allgemeine Java-Themen 1
J Java Software Compare Files und Neue File erstellen Allgemeine Java-Themen 0
Thallius Custom File Chooser Allgemeine Java-Themen 1
C .jar File lässt sich nur über Konsole öffnen Allgemeine Java-Themen 1
J Java Download Filedownload File.getFileName Allgemeine Java-Themen 3
R Java .class-File-Konstrunkt mit Programm visualisieren Allgemeine Java-Themen 18
G SecurityManager/Policy-File/Reflection Allgemeine Java-Themen 0
M pdf File bzw. ausgefüllte pdf Formulare drucken Allgemeine Java-Themen 2
S Input/Output File Not Found FileReader Allgemeine Java-Themen 6
Thallius Serialisiertes File kann auf anderem Rechner nicht geladen werden Allgemeine Java-Themen 12
P Java Dynamic Web Project -> config File Allgemeine Java-Themen 1
S runnable jar file in Verbindung mit itext Allgemeine Java-Themen 3
D Variablen java.io.File zum vergleichen abspeichern Allgemeine Java-Themen 1
M File IO Klasse ... wie einbinden Allgemeine Java-Themen 6
O Freies Tool zum Jar-File obfuscaten gesucht! Allgemeine Java-Themen 5
F File.listFiles ohne .sort Allgemeine Java-Themen 6
B XML File JAXB Allgemeine Java-Themen 0
S Platzverbrauch, File oder String Allgemeine Java-Themen 14
J Runnable jar-File: Fehlermeldung Allgemeine Java-Themen 2
P Kurze Frage: aus einer File die Zeilenanzahl auslesen Allgemeine Java-Themen 9
K Gepacktes Jar-File gibt beim Doppelklick eine Exception aus Allgemeine Java-Themen 4
P java.nio.file unter Java 6 verwenden Allgemeine Java-Themen 4
A TXT File einlesen unterschiedliche Zeilenlänge Allgemeine Java-Themen 9
B Finde letztes veränderte File Allgemeine Java-Themen 4
E Zip-File entpacken: unterschiedlicher Zeitaufwand bei unterschiedlicher Puffergröße Allgemeine Java-Themen 2
Guybrush Threepwood File.canWrite() und UAC Allgemeine Java-Themen 7
N Input/Output Mit Windows 7 erzeugtes zip-File in Java 7 öffnen Allgemeine Java-Themen 5
B Garbage Collection Logfile: Binary File Allgemeine Java-Themen 2
H XML-File mit Java erzeugt Frage Allgemeine Java-Themen 10
V C-Header Datei aus .java File herstellen Allgemeine Java-Themen 10

Ähnliche Java Themen

Neue Themen


Oben