externes Skript braucht für Ausführung viel zu lange (Runtime.getRuntime.exec())

shutdown

Erfahrenes Mitglied
externes Skript braucht für Ausführung viel längerals cmd (Runtime.getRuntime.exec())

Hi!

Ich habe folgendes Problem.
Ich will aus meinem Programm heraus ein ein externes vbs-Skript laufen lassen, das eine Abfrage an das ActiveDirectory schickt und die Ergebnisse in eine Datei schreibt.

Diese Abfrage und das Schreiben der Datei dauert, wenn ich das Ganze von der Konsole aus starte, nicht einmal eine Sekunde.

Aus meinem Java-Programm heraus allerdings, da muss ich zwischen 15 und 18 Sekunden warten, bis die Datei erstellt wurde. Da das nicht sein kann, muss ich euch fragen - was mache ich falsch?

Code:
myFileDate = System.currentTimeMillis();

try {
		
	Process p = Runtime.getRuntime().exec("wscript .\\skripte\\activeDirectory.vbs " + user + " " + "\\skripte\\tmp\\" + myFileDate);
	p.waitFor();
			
	System.out.println("datei geschrieben " + (System.currentTimeMillis() - myFileDate));
			
				
} catch (Exception e) {
	e.printStackTrace();
}

Da ich die Informationen, die danach in der Datei stehen, wieder einlesen möchte, kann ich diese Wartezeit einerseits dem Anwender nicht zumuten, zum anderen blockiert das Programm dann solange (okay, hier könnte ich einen eigenen Thread aufmachen, aber das löst das eigentliche Problem ja nicht).

Besten Dank
shutdown
 
Zuletzt bearbeitet:
okay, konnte das Problem selber lösen.

Es lag am direkten ausführen der vbs-Datei.

Wenn man sich eine Batch-Datei schreibt, die die Parameter aufnimmt und an das Skript weitergibt, dann taucht das Problem nicht mehr auf.

Einzig und allein das "Warum" bleibt die Frage.
 
Zurück