Runtime.getRuntime().exec() nicht in Servlets ?

Quero59

Mitglied
Hallo zusammen,

Runtime.getRuntime().exec() sieht ja so recht einfach aus, auch wenn ich noch nicht wirklich sicher mit Java arbeite.

Die Zeile...

Process myProcess = Runtime.getRuntime().exec("C:\\WINDOWS\\NOTEPAD.EXE");

... bringt denn auch einen hängenden Notepad-Process, der sich aber nicht auf der Oberfläche zeigt.

Das Programm, welches ich letztendlich ausführen will (nein, nicht Notepad ;) hat kein User-Interface, es läuft durch und beendet sich. Wenn ich dieses Programm wie oben aufrufe, zeigt es sich auch kurz als Process, aber tut nicht wirklich was - es sollte zumindest einen Eintrag in eine Protokolldaei erzeugen.

Der Aufruf findet in einem Billig-Testservlet statt.

Rumprobiert hab ich reichlich, z.B. Slash statt Doppel-Backslash, Parameter als String-Array, Parameterübergabe wie in C++ gewohnt (arg0 = arg1) und so weiter und so fort.

Etwas ratlos und dankbar für jede Idee
Quero
 
Was möchtest du denn genau Protokollieren? Es gibt mit log4j ein spitzen Framework um Protokoll zu führen.
 
Die Protokollierung ist nicht das Ziel, nur ein Hinweis im Moment, dass gar nix geht.

Das Programm ist eine Shareware, die eine SMS versendet.

Stand jetzt: In einem Main() geht alles, im Tomcat Umfeld nix.

Der Umweg, das Programm über einen Batch aufzurufen, brachte nichts.

Irgendwie liegt es wohl am Tomcat, der ja wieder ein Dienst ist, mit eigenem Benutzer, denke ich. Oder die Mini GUI kommt irgendwie nicht durch (ist nur eine Box, die wieder verschwindet).
 
Du willst diese Shareware aufrufen? Diese besteht aus einem Fensterchen auf dem dann die Nachricht eingegeben werden kann?
 
Ja, die Shareware will ich aufrufen. :)

Nein, die GUI spielt keine Rolle, wenn man als Parameter einen Dateinamen zur Steuerung mitgibt. Da kommt nur kurz eine Box hoch, die wieder verschwindet.

Aber beschäftigen wir uns nicht so sehr mit der Shareware.

Selbst das Notepad lässt sich nicht in einem Tomcat Servlet aufrufen.
 
Zurück