最近做的项目中,需要在java中调用linux命令,并且获取此命令打印的值。找了一些文档,在本机xp系统上测试了一下。
测试代码:
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class LinuxExce {
public static void main(String[] args) throws Exception {
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("java HelloWorld");
try {
InputStreamReader isr = new InputStreamReader(process.getInputStream());
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null ){
System.out.println("monitor:"+line );
Thread.sleep(500);//休眠0.5秒中,防止速度过快,造成刷屏现象
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Process process = Process process = runtime.exec("java HelloWorld");//通过运行java HelloWorld这个命令,创建一个进程
在同样的目录下,建立一个HelloWorl.java程序,并且编译。
HelloWorld.java代码:
public class HelloWorld{
public static void main(String[] args) throws Exception{
int i = 0 ;
while(i < 100){
System.out.println("HelloWorld"+i++);
}
}
}
在dos下编译LinuxExce.java:javac LinuxExce.java
运行LinuxExce.class :java LinuxExce
可以看到