Chcialem napisac sobie programik, ktory pozwoli mi z poziomu pliku javy wywolywac komendy w terminalu i wyswietlac to co jest zwracane przez te komendy w konsoli. O to moj kod:
import java.lang.*;
import java.io.*;
public class oraexec {
public static void execCommand(String command) throws Exception {
Process p = Runtime.getRuntime().exec(command);
String s = "";
p.waitFor();
BufferedReader stdInput = new BufferedReader(new InputStreamReader(
p.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(
p.getErrorStream()));
System.out.println("Wyjście polecenia:\n");
while ((s = stdInput.readLine()) != null)
System.out.println(s);
System.out.println("Wyjście błędów:\n");
while ((s = stdError.readLine()) != null)
System.out.println(s);
}
public static void main(String [] args) throws Exception{
execCommand("/bin/bash -c cd Desktop");
execCommand("/bin/bash -c ls");
}
}
I teraz zalozmy ze chcialbym przejsc sobie na swoj pulpit i za pomoca ls wyswietlic wszystkie pliki, ktore tam mam w konsoli.Normalnie w terminalu by sie to odbylo poprzez :
cd Desktop
ls
.......//tu by sie pojawily katalogi/pliki z pulpitu.
I teraz chcialbym zrobic cos takiego w swoim kodzie. To co wrzucilem u gory nie dziala dobrze gdyz za kazdym razem
Process p = Runtime.getRuntime().exec(command); wykonuje nowy process
w mainie przejscie do cd Desktop wykonuje sie w ramach jednego procesu
a wyswietlanie dostepnych plikow w ramach drugiego(czyli nie wyswietla mi listy plikow z Desktop tylko z katalogu biezacego)
Czy ktos moglby mi poradzic jak to zmienic?