XML lesen, verarbeiten, speichern klappt in Eclipse, aber nicht in der JAR

Swordfish

Mitglied
Hallo miteinander,

gerade stehe ich vor einem (für mich) merkwürdigen Problem mit einem Programm, das eigentlich getestet und "fertig" war: Eine Aktion, die im Testmodus von Eclipse funktioniert, klappt mit der JAR-Datei nicht.

Es handelt sich um einen Speichervorgang, bei dem eine XML-Datei geparst und währenddessen teilweise in einen StringBuilder kopiert wird, der hinterher in die neue Datei kommt. Grundsätzlich also ein Filtervorgang. Bei meinen bisherigen Tests mit der JAR gab es da auch keine Probleme, aber bei einer bestimmten Datei (wohlgeformt, valide, alles ok) scheint das Programm ein paar Sekunden lang zu arbeiten, das Menü ist ausgegraut und es reagiert nicht auf Klicks, ohne dass jedoch hinterher überhaupt irgendwas gespeichert wurde, die Datei wurde nicht einmal angelegt.
In Eclipse jedoch lässt sich genau diese Datei verarbeiten und es entsteht der richtige Output. Das Programm braucht hier übrigens auch länger, bis es wieder reagiert, gut zwanzig Sekunden.

Die fragliche XML-Datei ist zwischen 400 und 500 MB groß. Schätzungsweise bricht die JAR-Datei noch während des Sammelns für den StringBuilder ab, was auch erklären würde, warum nicht einmal eine leere Datei erzeugt wird - das Speichern kommt erst ganz am Ende.

Wieso aber geht derselbe Vorgang im Editor, in der freien Wildbahn aber nicht? Zumal sich kleinere Dateien ja auch via JAR verarbeiten und speichern lassen, das Problem tritt nur bei dieser auf. Der einzige für mich erkennbare Unterschied ist die Dateigröße: Die anderen Dateien waren bisher höchstens 30 MB groß. Könnte das Programm in einer vermeintlichen Schleife gestoppt werden, wenn es "zu lange" nicht reagiert? Oder wird der JAR weniger Speicher zugeteilt, so dass es daran liegen könnte?

Grüße,
Ruben
 
N

nillehammer

Gast
Würde auf zu wenig Memory tippen. Eclipse startet mit mehr als den standardmäßigen 64MB. Beim Start der JVM kannst Du angeben, wieviel RAM die JVM verwenden soll:
Code:
java -Xms100m -Xmx300m -jar "C:\app.jar"
Es macht mich allerdings stutzig, dass du keinerlei Exceptions bekommst. Verschluckst Du die alle?
 

Swordfish

Mitglied
Vielen Dank, das war es. Ich war mir nicht im Klaren, dass Eclipse mehr als den Standardwert bekommt. 64 MB ist bei großen Textdateien ganz schön wenig. Die VisualVM zeigt auch sehr schön, wie der Heap beim Verarbeiten nach oben schnellt.
Tatsächlich weist das Programm auch brav auf den Heap-Error hin, aber die Meldung ist mir immer entgangen, weil ich die JAR direkt gestartet habe, nicht über Konsole. Ich sollte wohl besser noch eine Fehlerausgabe einbauen ...

Gibt es eine einfache Möglichkeit, eine JAR-Datei so anzulegen, dass sie sich beim Öffnen durch Doppelklick von selbst eine bestimmte Menge Speicher sichert? Die beste Lösung, die ich dazu gefunden habe, ist ein kleines Starter-Programm zu schreiben.
 
N

nillehammer

Gast
Gibt es eine einfache Möglichkeit, eine JAR-Datei so anzulegen, dass sie sich beim Öffnen durch Doppelklick von selbst eine bestimmte Menge Speicher sichert? Die beste Lösung, die ich dazu gefunden habe, ist ein kleines Starter-Programm zu schreiben.
Ja, Startscript ist die einzige Möglichkeit, die ich dazu kenne.
 

Swordfish

Mitglied
Ok, das hat funktioniert. Ich habe den Speicherbedarf reduzieren können, indem ich den StrinbBuilder weg lasse und gleich in die Datei schreibe, aber ganz gereicht hat das noch nicht. Also rufe ich jetzt die JAR-Datei über ein Script ähnlich wie das von "Benjamin" auf und weise ihr dadurch mehr Heap zu.

Vielen Dank nochmals!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
G Dateien lesen Allgemeine Java-Themen 3
OnDemand Excel lesen wie CSV Allgemeine Java-Themen 7
S Textdatei statt von Dateisystem aus .jar lesen Allgemeine Java-Themen 3
oskarS85 GeoTiff NDVI pixelweise lesen Allgemeine Java-Themen 2
R Lesen von Interfaces (Programm Vervollständigen) Allgemeine Java-Themen 10
OnDemand CSV lesen flexible Spalten Allgemeine Java-Themen 3
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
S File lesen und schreiben Java 6 Allgemeine Java-Themen 2
J Die Letzte Zahl aus einer Text datei lesen Allgemeine Java-Themen 8
L Input/Output Kassenzettel lesen aus einem Bild Allgemeine Java-Themen 2
M Daten aus MatLab Datei lesen Allgemeine Java-Themen 8
G Excel Tabelle lesen und in neue Excel Tabelle einfügen Allgemeine Java-Themen 11
J File in Package erstellen & lesen mit Programmstart in externe Projekt Allgemeine Java-Themen 3
A File lesen Codierung Charset Allgemeine Java-Themen 5
E Socket Dynamische Klasse von ObjectOutputStream lesen. Allgemeine Java-Themen 8
D Mit Java PHP hashmap lesen Allgemeine Java-Themen 1
B Quellcode lesen - Aussortieren Allgemeine Java-Themen 3
A Steuerung von Spiel aus Datei lesen Allgemeine Java-Themen 0
F Best Practice Große Anzahl an Objekten speichern und lesen Allgemeine Java-Themen 19
L CSV File lesen, in ArrayList speichern und ausgeben Allgemeine Java-Themen 3
S Eigenschaften (hier Verknüpfung) eines Files lesen Allgemeine Java-Themen 2
OnDemand Java Barcode lesen Allgemeine Java-Themen 4
F Json in sql speichern und lesen Allgemeine Java-Themen 10
K Classpath Alle Classen aus einem Package lesen Allgemeine Java-Themen 7
X NetBeans Bilder und andere Dateien ins .jar schreiben und wieder aus .jar lesen Allgemeine Java-Themen 6
K Bestimmten Bereich eines Strings lesen Allgemeine Java-Themen 6
H Input/Output .txt Datei in Jar lesen Allgemeine Java-Themen 6
F Lesen effizienter als schreiben? Allgemeine Java-Themen 4
RalleYTN REST API ResponseType application/pdf lesen Allgemeine Java-Themen 0
R Inputstream lesen mit Pointer Allgemeine Java-Themen 0
I Setzen und Lesen eines Objektes (Enum?) Allgemeine Java-Themen 10
javampir Input/Output Effizienz beim binären Lesen einer Datei Allgemeine Java-Themen 6
D Datentyp von Unbounded Wildcards lesen Allgemeine Java-Themen 2
J Text lesen und in Variablen speichern Allgemeine Java-Themen 3
B SMS von Vodafone Mobile Connest mit JAVA-Programm lesen Allgemeine Java-Themen 0
2 String Array in Datei schreiben und wieder davon lesen Allgemeine Java-Themen 2
A In Excel-Datei schreiben, Formeln der Mappe anwenden, Wert lesen Allgemeine Java-Themen 3
Thallius Dateien Zippen und wieder heraus lesen? Allgemeine Java-Themen 4
L Input/Output Datei in den Speicher lesen. Allgemeine Java-Themen 9
E Lesen von mehrere Csv-Datei und ihre Inhalte vergleichen Allgemeine Java-Themen 3
F Java Bytecode lesen Allgemeine Java-Themen 5
W Schreiben/Lesen aus RS232 / jssc Allgemeine Java-Themen 0
L Input/Output Datei lesen Allgemeine Java-Themen 1
H Mehrere Bilder aus einer Datei lesen Allgemeine Java-Themen 2
OnDemand Lesen aus Properties Allgemeine Java-Themen 7
N Content von URL lesen Allgemeine Java-Themen 18
T UTF-16LE String aus LDAP lesen und als ISO-8859-1 in DB speichern? Allgemeine Java-Themen 2
J Bytes aus Socket lesen Allgemeine Java-Themen 9
M Aus Excel Tabelle lesen und Werte in Array speichern Allgemeine Java-Themen 15
W Passwortgeschuetzte .mpp Datei mit MPXJ lesen Allgemeine Java-Themen 3
O BufferedReader von ganz unten anfangen zu lesen Allgemeine Java-Themen 7
G Binäre Datei lesen / schreiben Allgemeine Java-Themen 9
E Apache POI-Datei lesen und umschreiben Allgemeine Java-Themen 8
T Welches Tuturial soll ich paralell lesen ? Allgemeine Java-Themen 3
T Datei lesen, bearbeiten, speichern Allgemeine Java-Themen 14
T Kann HTML Datei nicht lesen Allgemeine Java-Themen 3
S Die Zeile die JUnit gerade ausführt lesen Allgemeine Java-Themen 15
A nur einen Wert aus einer .conf lesen und erneuern Allgemeine Java-Themen 3
H Input/Output InputStream: 32-Bit-Ganzzahl (DWORD) binär lesen Allgemeine Java-Themen 5
B Hex aus .txt lesen Allgemeine Java-Themen 8
C Datentypen von string in ein array lesen Allgemeine Java-Themen 4
C aus einem String einzelne Hex Werte lesen Allgemeine Java-Themen 7
D Ausgabe von C# Konsolenanwendung lesen Allgemeine Java-Themen 5
F CSV-Datei aus Internet lesen Allgemeine Java-Themen 2
P ObjectInputStream kann nicht vernünftig lesen... Allgemeine Java-Themen 9
R Datei zeilenweise lesen und schreiben Allgemeine Java-Themen 6
0 Datein aus laufender Jar lesen und bearbeiten Allgemeine Java-Themen 10
S Dateien aus src-Ordner lesen Allgemeine Java-Themen 3
F hex-farbwert der pixel aus bildern lesen Allgemeine Java-Themen 4
L Wikipedia Artikel lesen Allgemeine Java-Themen 16
J HSSF - schreiben in und lesen aus vorhandener Datei Allgemeine Java-Themen 6
R Properties Datei aus Applikationsverzeichnis lesen Allgemeine Java-Themen 5
J xlsx Dateien lesen OHNE apache POI Allgemeine Java-Themen 6
C Property-File lesen und schreiben Allgemeine Java-Themen 20
M Binäre Datei schreiben und lesen Allgemeine Java-Themen 4
N Problem beim lesen einer File in JAR-File Allgemeine Java-Themen 3
D Datei lesen ohne sie für umbenennen/verschieben zu sperren Allgemeine Java-Themen 13
reibi Sicher ein File lesen Allgemeine Java-Themen 28
R Java lesen von Dateien, Little-Endian Allgemeine Java-Themen 2
N Performates lesen von Objekten aus Dateien Allgemeine Java-Themen 2
T Integer aus InputStream lesen Allgemeine Java-Themen 3
C Alle Klassen eines Packages lesen und instanzieren? Allgemeine Java-Themen 9
D Probleme beim schreiben / lesen in TreeMap Allgemeine Java-Themen 9
D (Viele) Daten performant speichern und lesen Allgemeine Java-Themen 5
TiME-SPLiNTER Unbekannte Anzahl serialisierter Objekte lesen Allgemeine Java-Themen 2
brunothg Iso lesen Allgemeine Java-Themen 2
B PDF lesen funktioniert bei bestimmten Dateien nicht mit pdfview Allgemeine Java-Themen 4
C Markierung durch Maus lesen Allgemeine Java-Themen 9
nrg JDOM Tabelle lesen Allgemeine Java-Themen 6
P Datei in einen String lesen Probleme bei Codierung Allgemeine Java-Themen 2
L Grafik lesen Allgemeine Java-Themen 2
P Mime Type aus Stream lesen Allgemeine Java-Themen 5
H POI Excel lesen und schreiben Allgemeine Java-Themen 10
Iron Monkey Object in Datei effizienter lesen / schreiben Allgemeine Java-Themen 13
L Lesen von Objekten aus Datei Allgemeine Java-Themen 17
M PCL Stream lesen und schreiben Allgemeine Java-Themen 6
U Java file aus Classpath lesen Allgemeine Java-Themen 1
L Applet Verzeichnis lesen Allgemeine Java-Themen 3
R InputStream zweimal lesen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben