.bat - Datei starten ohne Konsolenfenster zu sehen

beta20

Top Contributor
Hallo zusammen,

ich möchte gerne eine .bat - Datei starten, jedoch soll nicht das Konsolenfenster ersichtlich sein.
Wie kann ich das machen?

Hier mein Code:
Java:
String pathForServer = "cmd /c start " +  "pfadzurDatei.bat";
       Process process = Runtime.getRuntime().exec(pathForServer);

Was auch komisch ist:
Lass ich "cmd /c start " weg sollte es ja eig auch funktionieren. Allerdings wird dann der Prozess nicht korrekt ausgeführt. Zum Hintergrund: Ich starte damit die .standalone.bat - Datei des Wildfly - Servers. Der Server startet dann nicht korrekt und hängt irgendwann bei "Bound datasources".
 
Moin,

keine Ahnung, ob ich Deine Frage richtig verstehe ....
Um eine Batchdatei innerhalb einer anderen aufzurufen, gibt es den Befehl CALL :
https://de.wikibooks.org/wiki/Batch-Programmierung:_Batch-Befehle
http://help.fdos.org/de/hhstndrd/batch/call.htm

Falls nur darum geht, dass das Konsolenfenster nicht zu sehen sein soll:
Es gibt IMHO eine Option, die die Anzeige unterdrückt, finde sie aber gerade auf die schnelle nicht!
http://www.script-example.com/themen/cmd_Batch_Befehle.php

Gruß Klaus

EDIT: vielleicht ist hier etwas dabei?
https://www.google.de/search?q=cmd+...firefox-b&gfe_rd=cr&ei=gfFgV6imMquP8Qeg37uoCg
 
Versetehe deine Frage auch nicht ganz, aber dass das Konsolenfenster nicht sichtbar ist, solltest du in der .bat festlegen.
Öffnen könntest du die Batch in Java z.B. mit der Desktop-Klasse.
Java:
Desktop.getDesktop().open(file);
 
Die .bat - Datei will ich eigentlich nicht anfassen (das ist die .standalone.bat des Wildfly Server).
Gibt es nicht irgendein (Zusatz) Befehl, damit das Konsolenfenster nicht angezeigt wird?
Irgendetwas mit /qn (quiet)
Wie kann ich das in den bestehenden Code einpflegen?

Java:
String pathForServer = "cmd /c start " +  "pfadzurDatei.bat";
       Process process = Runtime.getRuntime().exec(pathForServer);
 
Warum gehst du den Umweg über cmd?
Du kannst als Argument von exec direkt eine .bat-Datei angeben.

Edit: Da hast zwar geschrieben, dass du das grundsätzilch versucht hast ohne CMD, bitte versuch aber mal das mit "> nul".

Testweise hab ich das mal mitm Calc von Windows gemacht:

Java:
Process process = Runtime.getRuntime().exec("Dateipfad\\calc.bat" + " > nul");

Die calc.bat ist im Test dann ein einfaches
Code:
%windir%\system32\calc.exe

oder in deinem Fall hat das standalone vom Wildfly.
 
Habe noch eine Frage:
Wie kann ich den Server wieder stoppen.
Ich weiß nicht: Ist das korrekt den gestarten Prozess wieder zu killen?
Wenn wie geht das?

Habe das probiert, aber funktioniert irgendwie nicht:
Code:
        String path = "C:\\Software\\wildfly-10.0.0.Final\\bin\\standalone.bat";
           
            Process process = Runtime.getRuntime().exec(path + " > nul");

            Thread.sleep(300000);
       
            process.destroy();
 

Neue Themen


Zurück
Oben