Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

06.07.2009, 20:19

Java Batchaufruf funktioniert nicht richtig

hi @ all,

ich generiere mit hilfe von java eine .cmd datei, die hinterher von java aus aufgerufen wird. wenn ich die cmd datei per hand starte, funktioniert sie ohne probleme. sobald ich die cmd datei mit java aufrufe, werden die datei zwar ausgeführt, beendet sich aber.

so rufe ich den batch auf:

C-/C++-Quelltext

1
Process p = Runtime.getRuntime().exec("cmd /c call batchname.cmd");


ich hatte schon die vermutung, das alles zu schnell geht, da ich unmittelbar vor dem batchaufruf den batch erst erzeuge, aber ein Thread.sleep(100); hat da keine abhilfe geschaffen

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

06.07.2009, 20:28

Nachdem die Batchdatei wohl in einem eigenen Prozess ausgeführt wird, wird das sleep nicht viel nützen. Mach mal ein Sleep oder ein Pause in die Batchdatei rein ;)

3

06.07.2009, 20:32

ich geb mir mit process die ausgabe von dos aus, aber irgendwie scheint der batch zu hängen und im taskmanager sehe ich die exe auch nicht, die der batch anstoßen soll. der witz ist ja, das der batch funktioniert, wenn ich den mit der hand starte, aber wenn ich den mit java anstoße, hängt er, nachdem er 2 dateien verarbeitet hat. bringt es was, den batch in einem eigenen thread zu starten?

Mordrak

1x Contest-Sieger

Beiträge: 121

Wohnort: München

Beruf: Junior IT Consultant

  • Private Nachricht senden

4

07.07.2009, 17:43

Ich verwende fuer sowas meist

....exec( "cmd /c START \"Temporary Window\" batch.cmd");

Das .cmd sollte mit 'exit' am Ende das neue Konsolenfenster natuerlich schliessen.

(Etwas mehr Details in Deiner Problembeschreibung waeren uebrigens sehr angenehm gewesen.)

Gruesse,
Mordrak

PS: Grauenvolle Dinge koennen passieren, wenn man sich auf einen Sleep zur Prozesssteuerung verlaesst.
What's yellow and equivalent to the axiom of choice? The Lemmon of Zorn!

5

08.07.2009, 08:32

problem behoben. cmd war noch im falschem pfad. lösung:

einen 2. batch erstellt, der erst in das verzeichnis navigiert und danach den eigendlichen batch startet.

Werbeanzeige