65 lines
1.7 KiB
Java
65 lines
1.7 KiB
Java
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
|
|
public class MainEntry {
|
|
public static void main(String[] args) {
|
|
// the command to execute
|
|
executeCmd("ls -oa");
|
|
}
|
|
|
|
private static void executeCmd(String string) {
|
|
InputStream pipedOut = null;
|
|
try {
|
|
Process aProcess = Runtime.getRuntime().exec(string);
|
|
|
|
// These two thread shall stop by themself when the process end
|
|
Thread pipeThread = new Thread(new StreamGobber(aProcess.getInputStream()));
|
|
Thread errorThread = new Thread(new StreamGobber(aProcess.getErrorStream()));
|
|
|
|
pipeThread.start();
|
|
errorThread.start();
|
|
|
|
aProcess.waitFor();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
} catch (InterruptedException ie) {
|
|
ie.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Replace the following thread with your intends reader
|
|
class StreamGobber implements Runnable {
|
|
|
|
private InputStream Pipe;
|
|
|
|
public StreamGobber(InputStream pipe) {
|
|
if(pipe == null) {
|
|
throw new NullPointerException("bad pipe");
|
|
}
|
|
Pipe = pipe;
|
|
}
|
|
|
|
public void run() {
|
|
try {
|
|
byte buffer[] = new byte[2048];
|
|
|
|
int read = Pipe.read(buffer);
|
|
while(read >= 0) {
|
|
System.out.write(buffer, 0, read);
|
|
|
|
read = Pipe.read(buffer);
|
|
}
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
} finally {
|
|
if(Pipe != null) {
|
|
try {
|
|
Pipe.close();
|
|
} catch (IOException e) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|