Jar-File [Datei nicht gefunden] (im Jar)

buntuswalus

Mitglied
Schönen Abend,

ich ahbe ein (wie ich hoffe kleines Problem). Ich habe ein Programm geschrieben, welches Wetterdaten interpoliert. Dazu werden aus einem im Projekt enthaltenen Ordner "data" CSV-Dateien eingelesen (eine Art Pseudodatenbank).

Das Programm lässt sich aus Eclipse heraus wunderbar ausführen. Wenn ich jedoch das Projekt zu einem runnable Jar-File exportiere ist das Programm nicht mehr lauffähig. Auf der Konsole meldet mein Programm, dass die CSV-Dateien nciht eingelesen werden konnten (FileNotFoundException).

Hier ein Bild von der Struktur und den Zugriffspfaden:

wetterd.jpg


Hat jemand eine schlaue Idee? :rtfm:
 
Zuletzt bearbeitet:
J

JohannisderKaeufer

Gast
Daten in einer jar ließt, lädt man über

Eine im Jar enthaltene Klasse z.B. Foo

Foo.class.getResourceAsStream("relativerPfadvonFooZurJeweiligenDatei");

Somit bekommt man einen Stream was ja meistens reicht.

Oder man geht einen Umweg und holt sich über class.getResource("selbePfadangabeWieOben") die passsende URL, die man seinem Fiile-Objekt übergibt.
 

buntuswalus

Mitglied
Ich kann dir leider nicht ganz folgen :)
Die Dateipfade in meinem Bild (die Strings rechts) werden später an Klassen übergeben,
welche diese weiterverarbeiten (lesen, umwandeln, ...). Das einlesen erfolgt so:
Java:
Scanner fileScan = new Scanner(new File(pfad));
"pfad" ist ein String von oben im Bild.

Mich würde interessieren wie ich dies genau ändern muss, damit ich die CSV-Dateien auch in einem Jar-File einlesen kann. ???:L
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Möchte euch nicht dazwischen nudeln, aber:
so wird der Ordner mit den .csv Dateien doch ohne weiteres gar nicht mit ins Archive gepackt oder? (kannst ja mal ins jar schauen)...verschiebe den mal nach oben :eek:
 
J

JohannisderKaeufer

Gast
Java:
Scanner fileScan = new Scanner(Foo.class.getResourceAsStream("PfadVonFooZuDeinerDatei"));
bzw.
Scanner fileScan = new Scanner(Main.class.getResourceAsStream(dateiPfadOrte));

oder ganz anders, könnte auch funktionieren
private static String dateiPfadOrteURL = Main.class.getResource(dateiPfadOrte).getPath();
 

buntuswalus

Mitglied
*grübel*
Verstehe ich nicht ganz, was soll da genau passieren?
Ich habe bereits eine klasse die die Daten einliest, warum brauche ich noch eine? :bahnhof:

Die Dateien habe ich nun alle direckt in den src-Ordner gelegt (wird nun mit exportiert).
Den erreiche ich mid "./src/DATEINAME" oder? :)

// Update, in Eclipse läuft es mit dem Pfad "./src/DATEINAME" im Jar nicht ;(
 
Zuletzt bearbeitet:

buntuswalus

Mitglied
Läuft! Nur noch ein paar Fragen ;)

Wie oben gesagt, hab ich den genauen Fehler erst durch ein Ausführen in der Konsole gefunden.
Stimmt aber, src ist weg nach dem exportieren. Nun hab ich das ganze einfach mal in das Toppackage gelegt:
unbenanntqwk.jpg


Die CSV-Dateien beziehe ich nun so: (Der Code ist in einer Klasse im Package "fileRader")
Java:
Scanner fileScan = new Scanner(this.getClass().getClassLoader().getResourceAsStream(pfad));
und die Pfade zu den beiden Dateien sehen so aus (der Code ist in der Klasse Main):
Java:
// Dateipfade:
	private static String dateiPfadOrte = "wetterInterpolator/orte.csv";
	private static String dateiPfadMesswerte = "wetterInterpolator/messwerte.csv";

Der Link war sehr hilfreich eRaaaa, danke! :)
Nun fange ich alngsam an zu verstehen was mir JohannisderKaeufer mitteilen wollte (du hast mich ziehmlich verwirrt :D).

Letzte 2 Fragen:
Ist meine Implementierung so in Ordnung?
Und mit Classpath ist der Inhalt von src gemeint, oder?
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Ist meine Implementierung so in Ordnung?

Wenn sie funktioniert dann joah ^^ (die Pfade ändern sich ja wohl nicht, d.h. man könnte die auch private static final machen und dann groß schreiben (http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html#367) aber das nur am Rande

Classpath generell:
PATH and CLASSPATH (The Java™ Tutorials > Essential Classes > The Platform Environment)
Java Blog Buch : 07.03 Einbinden von externen Klassen – Classpath
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 10.4 Klassenlader (Class Loader)

waren das die Antworten auf deine Fragen? :oops:
 

buntuswalus

Mitglied
Frage 1: Ja.
Frage 2: Ehm, och nööö^^ Ich bin irgendwie von einer Ja Nein Antwort ausgegangen.. :D

Naja ich les mich mal durch und ergründe dieses "Vielleicht" ;)
So dann schließ ich mal diese Angelegenheit hier. Danke euch!
 

buntuswalus

Mitglied
Ou, eine Frage hab ich noch.

In der Mainmethode habe ich noch ein Icon das ich setze Für das Fenster.
Da ist die Syntax anders als beim Scanner:
Java:
frame.setIconImage(new ImageIcon("src/wetterInterpolator/icon.jpg").getImage());
Was kann ich hier machen? Ich habe hier nun ne halbe stunde rumprobiert.
So läuft es zumindest aus Eclipse heraus, aber das mit dem src (weis ich ja jetzt ;)) kann so aus
einem Jar-file nciht klappen. ???:L
 

eRaaaa

Top Contributor
Na auch über die URL und getResource(...) (ohne src/)
Java:
java.net.URL imgURL = DeineKlasse.class.getResource(PFAD);
//....
new ImageIcon(imgURL);
 

buntuswalus

Mitglied
Java:
java.net.URL imgURL = Main.class.getResource("icon.jpg");		
frame.setIconImage(new ImageIcon(imgURL).getImage());

Klappt wunderpar! Also passt URL auch in den Konstruktor von ImageIcon :)
Gerissen :D

Und getResource(PFAD); sucht ja direkt in dem aktuellen Package. Wunderbar.
So nu aber schlafen:) Gute Nacht!

DANKE!!
 

mabuhay

Bekanntes Mitglied
Wollte noch erwähnen dass du den Ordner data mit den csv-Dateien oder was auch immer nicht unbedingt "nach oben" (in den src-Ordner) schieben musst. Du kannst auch in Eclipse rechtsklick -> Build Path -> Use as source folder auswählen (eigentlich was JohannisderKaeufer erwähnt hat). Dann wird er beim Export in die jar gepackt und es ist evtl ein wenig übersichtlicher ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Datei in Jar-File wird nicht gefunden Allgemeine Java-Themen 10
C Input/Output Problem bei Datei verschiebung mit File.move und Paths.get() Allgemeine Java-Themen 26
V C-Header Datei aus .java File herstellen Allgemeine Java-Themen 10
S Datei in File-Objekt mit UTF-8 einlesen Allgemeine Java-Themen 2
O .jar File mit ini - Datei??? Allgemeine Java-Themen 3
G externe Properties datei aus Jar File heraus lesen Allgemeine Java-Themen 12
E File in JAR-Datei Allgemeine Java-Themen 8
O Datei Zugriff aus JAR-file Allgemeine Java-Themen 4
G Datei in JAR-File lesen Allgemeine Java-Themen 3
J File: Inhalt des Ordners aus dem die aktuelle Datei ausgefüh Allgemeine Java-Themen 6
K Datei in JAR-File aktualisieren Allgemeine Java-Themen 11
X HTML-Datei aus einem JAR-File laden Allgemeine Java-Themen 2
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
D Read JSON File Problem Allgemeine Java-Themen 9
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
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7
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
D File mit Inhalt kopieren und dieses File dann neu erstellen ? Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben