Fragensteller
Batch Datei ausführen

Frage
-
Guten Tag,
Ich habe folgendes Problem beim Ausführen meiner Bathdatei:
bukkit = new Process(); StreamWriter consolewriter; bukkit.StartInfo.FileName = "cmd.exe"; bukkit.StartInfo.Arguments = @"/c J:\Dokumente\Bukkit\craftbukkit.bat"; bukkit.StartInfo.UseShellExecute = false; bukkit.StartInfo.RedirectStandardOutput = true; bukkit.StartInfo.RedirectStandardInput = true; bukkit.StartInfo.RedirectStandardError = true; bukkit.StartInfo.ErrorDialog = false; if(bukkit.Start()) { bukkit.OutputDataReceived += new DataReceivedEventHandler(bukkit_OutputDataReceived); bukkit.ErrorDataReceived += new DataReceivedEventHandler(bukkit_ErrorDataReceived); bukkit.BeginErrorReadLine(); bukkit.BeginOutputReadLine(); consolewriter = bukkit.StandartInput(); isrunning = true; }
Wenn ich das Programm nun Starte, öffnet sich das cmd Fenster ganz kurz und schliesst sich danach sofort wieder. Es blinkt also nur einmal auf.
Wenn ich die Batchdatei manuell ausführe fuktioniert alles einwandfrei.Hier der Inhalt der Batchdatei:
@echo off java -Xmx1G -Xms1G -jar craftbukkit.jar PAUSE
Wenn ich die Bat datei also manuell ausführe, öffnet sich das cmd fenster und es wird dort der Output der craftbukkit.jar angezeigt:
http://img3.fotos-hochladen.net/uploads/unbenanntc2ijoulsvn.png
Help Please!
- Bearbeitet ThaCorp Sonntag, 24. Februar 2013 11:25
Alle Antworten
-
Hallo,
Das die Batch-Datei wieder zu geht, liegt an dieser Zeile:
bukkit.StartInfo.RedirectStandardInput = true;
Damit leitest du die Eingabe auf dein Programm um und dieses interessiert sich nicht für die PAUSE-Anweisung.
Koopakiller [kuːpakɪllɐ] | Webseite | Code Beispiele | Facebook | Snippets
-
Hallo,
Das die Batch-Datei wieder zu geht, liegt an dieser Zeile:
bukkit.StartInfo.RedirectStandardInput = true;
Damit leitest du die Eingabe auf dein Programm um und dieses interessiert sich nicht für die PAUSE-Anweisung.
Koopakiller [kuːpakɪllɐ] | Webseite | Code Beispiele | Facebook | Snippets
Und wie kriege ich es hin, ohne den StandartInput auf false zu sezten? :o
Weil ich nähmlich den Input und den Output unbedingt auf meinem Programm leiten will -
Wenn du die Ein- und Ausgaben sowieso in dein Programm umleitest, warum möchtest du dann das Fenster offen halten?
Hast du mal versucht direkt den Startbefehl für Java von C# aus zu starten?
java -Xmx1G -Xms1G -jar craftbukkit.jar
Koopakiller [kuːpakɪllɐ] | Webseite | Code Beispiele | Facebook | Snippets