.Bat Server von .java Starten

specialize

Bekanntes Mitglied
Hallo,

ich würde gerne den Selenium RC Server von einer .java Datei starten, allerdings öffnet er kein externes CMD Fenster.

[Java]
public void b10doClicked() {
try {
ProcessBuilder prcb1 = new ProcessBuilder("cmd", "/C", currentDir + "\\src\\Data\\Run_SeleniumRC_Server.bat");
Process prc = prcb1.start();
System.out.println(prc.getErrorStream());
System.out.println(prc.getInputStream());
System.out.println(prc.getOutputStream());


} catch (Exception e) {
System.out.println(e);
}
}
[/code]

Pfad ist richtig.
Bitte um Hilfe!
 
Zuletzt bearbeitet:
Da öffnet sich kein extra Fenster.
Versuch doch mal das hier:
Java:
	try {
		ProcessBuilder prcb1 = new ProcessBuilder("cmd", "/C", "C:\\Windows\\explorer.exe");
		Process prc = prcb1.start();
		System.out.println("Process started");
		prc.waitFor();
		System.out.println("Process finished with code " + prc.exitValue());
	} catch (Exception e) {
		System.out.println(e);
	}

Mit den In- und Outputstreams kannst du verwenden um mit dem laufenden Programm zu kommunizieren.
 
Vielen Dank für deine Antwort.

Allerdings schließt sich die .bat Datei nicht von selber wenn man sie per Hand startet, sondern bleibt eben geöffnet (fungiert als Server).

Ich will die Datei nun ebenso von meinem Java programm starten können.
 
Zuletzt bearbeitet:
Ich versteh nicht ganz was du meinst.
Hier schließt sich auch nix, du siehst nur nicht wie die Datei ausgeführt wird.
Vielleicht solltest du mal genauer beschreiben, was du willst.

Beispiel:

Java:
		try {
			ProcessBuilder prcb1 = new ProcessBuilder("cmd", "/C", "server.bat");
			Process prc = prcb1.start();
			System.out.println("Process started");
			
			InputStream is 			= prc.getInputStream();
			InputStreamReader isr 	= new InputStreamReader(is);
			BufferedReader br		= new BufferedReader(isr);
		
			char[] buffer = new char[256]; int count = 0;
			while((count=br.read(buffer))>=0)
			{
				System.out.print(new String(buffer,0,count));
			}
			prc.waitFor();
			br.close();
			isr.close();
			is.close();
			
			System.out.println("Process finished with code " + prc.exitValue());

		} catch (Exception e) {
			System.out.println(e);
		}

server.bat
Code:
@echo off
:LOOP
echo Prozess meldet sich!
ping -n 2 127.0.0.1 > NUL
goto LOOP
 
Mir ist jetzt auch nicht ganz klar warum man ein Commandfenster öffnen soll.
Man könnte den Aufruf so gestalten:
Java:
ProcessBuilder process = new ProcessBuilder("cmd", "/C", "start", "meine.bat");
Allerdings kann man dann von Java aus nicht auf die eigentlichen Process Streams der bat zugreifen.
 
Mir ist jetzt auch nicht ganz klar warum man ein Commandfenster öffnen soll.
Man könnte den Aufruf so gestalten:
Java:
ProcessBuilder process = new ProcessBuilder("cmd", "/C", "start", "meine.bat");
Allerdings kann man dann von Java aus nicht auf die eigentlichen Process Streams der bat zugreifen.

Super Danke so gehts, auch ein danke noch an Ariol dass du bei der Lösungsfindung mitprobiert hast 🙂
Ging mir darum, dass das CMD Fenster offenbleibt, da SeleniumRC anscheinend darin arbeitet (wenn ich direkt auf die selenium-server.Jar datei zugreife funktioniert es nicht > er öffnet sie zwar, allerdings finden die Testcases keinen Server).
 
Zuletzt bearbeitet:

Zurück
Oben