Batch-Datei aus Java ausführen

Hi,

ich habe eine Batch-Datei, die super funktioniert, wenn man sie mit Doppelklick oder manuell über die Konsole startet.

Ich möchte sie nun aus einer JSP-Seite heraus starten.

Probiert habe ich folgendes:

try{
String path = „bat/drucken“;
ProcessBuilder processBuilder = new ProcessBuilder(path);
Process process = processBuilder.start();
out.println(„alert(‚ausgeführt.‘);“);
}catch(Throwable t){
t.printStackTrace();
out.println(" alert(‚Fehler beim Drucken.‘);");
}

statt path hab ich auch „cmd /C bat/drucken.bat“ ausprobiert
und statt

ProcessBuilder processBuilder = new ProcessBuilder(path);
Process process = processBuilder.start();

hatte ich auch schon

Runtime.getRuntime().exec(„cmd.exe“, „/C“, „bat/drucken.bat“);

ausprobiert. Aber nichts funktioniert.
Ich weiß nur, dass er das Javascript korrekt ausführt.

Hat irgendjemand eine Idee, wie ich die Sache doch noch zum Laufen bringe?

Gruß
Lianna

program flow?
… fürchte, da hast Du Dir Probleme damit aufgehalst, wer, was, welches Programm nun die Kontrolle über den von Dir gewünschten Ablauf erhält … wenn Du in java die Kontrolle an eine batch abgibst, mußt Du sie auch irgendwie zurückholen.
Dann sind noch Windows bzw Dein OP und noch der Drucker involviert …
Bin komplett überfordert …
Aber riecht mir nach 'was in dieser Richtung …

Hoffe mit Dir, es kommt noch ein Profi, der dieses Problem - das ja bis in die Hardware geht - im Griff hat … good Luck! ;o)

Dann sind noch Windows bzw Dein OP und noch der Drucker
involviert …

Es handelt sich nicht um wirkliches „Drucken“, die Batch startet ein VB-Script, welches aus n Word-Dokumenten ein einziges macht.

Hallo,

ich habe eine Batch-Datei,
und möchte sie nun aus einer JSP-Seite heraus starten.

try{
String path = „bat/drucken“;
ProcessBuilder processBuilder = new ProcessBuilder(path);
Process process = processBuilder.start();
out.println(„alert(‚ausgeführt.‘);“);
}catch(Throwable t){
t.printStackTrace();
out.println("
alert(‚Fehler beim Drucken.‘);");
}

Wo liegt die Batch Datei denn? Ich vermute nicht da, wo die JSP Engine sie sucht. Außerdem funktioniert es bei mir (mit Tomcat) nur wenn ich die .bat Endung hinzufüge. Ich habe den Code etwas angepasst, alle 3 Versionen funktionieren bei mir, die Datei wird jedoch jedesmal wo anders erwartet.

String path = null;
try{
 path = "/bat/drucken.bat";
 java.io.File f = new java.io.File(path);
 out.println("Run Process: " + f.getAbsolutePath() + "");

 ProcessBuilder processBuilder = new ProcessBuilder(path);
 Process process = processBuilder.start();
 out.println(" (success)
");


 path = request.getRealPath("/bat/drucken.bat");
 processBuilder = new ProcessBuilder(path);
 out.println("Run Process: " + path + "");
 process = processBuilder.start();
 out.println(" (success)
");

 path = "c:/temp/drucken.bat";
 out.println("Run Process: " + path + "");
 processBuilder = new ProcessBuilder(path);
 process = processBuilder.start();
 out.println(" (success)
");
}catch(Throwable t){
 t.printStackTrace();
 out.println(" Fehler beim Aufruf von " + path + " ");
 out.println(t.getMessage());
 }

HTH
Heavy

sry … sprich mit Heavy! [owT]
… der hat e
her 'n Durchblick.

Hi,

ich hab das Problem im Java Developer Forum von Sun gestellt, und einen hilfreichen Artikel gefunden.

für s Archiv hier die URL:

http://forums.sun.com/thread.jspa?threadID=5331438