Aufgerufene .jar läuft erst weiter wenn Hauptprogramm beendet wurde

jimb0p

Erfahrenes Mitglied
Hallo Zusammen,

wie bereits hier beschrieben:

http://www.tutorials.de/java/394286-batch-unterbricht-bei-direkt-aufruf-jedoch-nicht.html

habe ich ein ähnliche Problem. Ich habe eine Hauptanwendung die eine andere .jar's ausführt mit allen .jar Dateien funktioniert dies auch bis auf mit einer. Die läuft an, bleibt stehen und wenn ich die Hauptanwendung schließe, läuft die aufgerufene .jar zuende. Woran kann sowas liegen?

Bei dem oberen Thread handelt es sicherlich um das gleiche Problem, habe nur leider bis jetzt das Problem noch nicht lösen können.

Gruß
 
Wenn du wirklich ein .bat datei startest über Process..., dann kann ich mir das nur so vorstellen.
Das du diese Datei nachdem starten nicht mehr aufhalten kannst durch dein Programm, da du den Prozess nur anstößt.
 
Ok, aber ich frag mich warum läuft sie dann zuende wenn ich die Hauptanwendung schließe, denn starte ich das Unterprogramm dass die Batch startet direkt, läuft es ohne Probleme durch. In der Batch steht auch nur "ping localhost" also nichts was irgendwie nicht terminiert.
 
Ich konnte den Fehler finden, ich hatte noch einige Textausgaben (System.out.println()), diese habe ich nun alle auskommentiert und es funktioniert. Kann es sein dass man diese Ausgaben irgendwie abholen muss damit dort ein Speicherbereich nicht vollläuft?
 
Nein ich denke nicht, dass das der Fehler war. Eher hast du wahrscheinlich die sysouts iwie in einer Endlosschleife gehabt oder so andern falls kannst du nicht wirklich den Speicher vollschreiben wegen ein paar sysouts.

Du kannst auch mal gerne deinen Code Posten ich schau dann mal drüber. Ich denke eher, dass da was mit Threads nicht stimmt wenn du alles aus Java startest denke ich, dass du einen Thread verwendest wenn du sie einzelnd über Batches startest bekommt jeder seinen eigenen Thread ist aber nur so ins Blaue geraten ;)

Grüße
Youza

Edit:
Allerdings ist es immer wichtig die Sysouts rauszuhauen da diese ein Programm oft langsam machen. Allgemein sollte man sich angewöhnen zu debuggen anstatt immer zu printen :D
 
Zurück