Moin moin, Am Wednesday 19 November 2003 18:06 schrieb Tim Oliver Wagner:
ich versuche jetzt schon seit 24 Stunden folgendes hin zu bekommen. Bitte helfe mir doch mal einer ...
So gut es geht mit Java ... [...] Deinen Code kann ich nicht genau nachvollziehen, aber in meinen kleinen Test habe ich ähnliche Probleme. comand = "ls -lA" funktioniert. comand = "find / -name '*etc*' -print" funktioniert nicht wirklich, ich höre wie meine HDD losrattert! Nur komme ich nicht an die Ausgabe ... Auf der Konsole funzt der find Befehl...
Also der 1. Befehl funktioniert (mkfifo). Aber beim zweiten funktioniert es nicht. Wie Ihr oben seht, geben ich den Befehl der dort ausgeführt werden soll auf der Kommandozeile aus. Wenn ich genau dieses in die Shell einfüge, dann wird er richtig ausgeführt. Jedoch im Programm leider nicht :-(.
Warum??
Das willst Du bestimmt nicht wissen *SCNR* Java ist Sucks!!! Na gut, es gibt noch Hoffnung: Schau mal diesen Link an: google -> de.comp.lang.java -> Runtime.getRuntime().exec() http://groups.google.de/groups?hl=de&lr=&ie=UTF-8&threadm=ba63dde5.0304081024.3f200211%40posting.google.com&rnum=2&prev=/groups%3Fq%3D%2BRuntime.getRuntime().exec%2Bgroup:de.comp.lang.java%26hl%3Dde%26lr%3D%26ie%3DUTF-8%26group%3Dde.comp.lang.java%26selm%3Dba63dde5.0304081024.3f200211%2540posting.google.com%26rnum%3D2 Der gute Mann meint, das eventuell noch zusätzlich "/bin/sh -c" ausgerufen werden muss ... Bring aber bei meinen "find" auch nix!!! Ausser, das jetzt das java Programm durchläuft ... Mit dem "String[]" funktioniert der ls Befehl auch nicht mehr *wunder*!
Sieht jemand von Euch den Fehler oder hat eine Idee? Denn ich habe keine Ahnung mehr woran es noch liegen könnte.
Ehrlich gesagt weiss ich keine Lösung, ausser vielleicht C/C++ lernen ... de.comp.lang.java weiss da bestimmt mehr!!! java version "1.4.1_01" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01) Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode) ------------ test.java ----------------------- import java.io.*; public class test { public static void main( String argv[] ){ // String comand = "ls -lA"; // String comand_find = "find / -name 'home' -print"; String[] comand_array = { "/bin/sh", " -c", "ls -lA" //"find /home -name 'voodoo' -print" }; try { Process proc_v1 = Runtime.getRuntime().exec(comand_array); proc_v1.waitFor(); BufferedReader in = new BufferedReader(new InputStreamReader(proc_v1.getInputStream())); String output; while( (output =in.readLine()) != null) { System.out.println("while loop " + output ); } } catch (Exception e) { System.out.println("Error: " + e.getMessage()); } } } ---------------------------------------------------------------------------- Ciao Andre