Jestem wykonywania niektórych poleceń z wiersza polecenia w moim programie java i wydaje się, że nie pozwala mi używać "grep"? Przetestowałem to przez usunięcie części "grep" i polecenie działa dobrze!Proces Java Runtime nie będzie "Grep"
mój kod, który nie działa:
String serviceL = "someService";
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("chkconfig --list | grep " + serviceL);
Kod, który działa:
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("chkconfig --list");
Dlaczego tak jest? Czy istnieje jakaś poprawna metoda lub obejście? Jestem świadomy, że mógłbym po prostu przeanalizować cały wynik, ale łatwiej byłoby zrobić to wszystko z poziomu wiersza poleceń. Dzięki.
bez powodu, że nie może się równać w Javie. Po prostu pomyślałem, że szybciej będzie napisać grep niż parsować wynik. Jestem stosunkowo nowy w Linuksie, więc nie zdawałem sobie sprawy, że grep był funkcją powłoki. Dzięki! – Max
@Max: grep nie jest wbudowaną powłoką, potok '|' jest funkcją składni powłoki. – ninjalj