Runtime.getRuntime().exec Problem mit find

NT2005

Mitglied
Hallo Leute,

Ich verzweifle gerade an folgendem Code unter Linux:

Java:
Process runtime = Runtime.getRuntime().exec("find /home/myname -type f | xargs grep Hello");

InputStream is = runtime.getInputStream();
Scanner scanner = new Scanner(new BufferedInputStream(is));

while(scanner.hasNext()) {
 String line = scanner.next();
 System.out.println(line);
}

Irgendwie vertragen sich -type f und | xargs gep nicht miteinander. Jedoch funktioniert der gleiche Code in der Console.

Als Fehlermeldung erhalte ich:
Code:
find:
paths must precede expression: | Usage:
find [-H] [-L] [-P] [-Olevel] [-D
help|tree|search|stat|rates|opt|exec] [path...] [expression]
 
Probier es mal so:

Java:
String[] Prozess = new String[]{"/bin/sh", "-c", "find /home/myname -type f | xargs grep Hello"};
Process runtime = Runtime.getRuntime().exec(Prozess);

Günter
 

Neue Themen


Zurück
Oben