日期:2014-05-20  浏览次数:20748 次

runtime.exec的奇怪的问题,看看你懂不?高手请进
import   java.io.IOException;

public   class   Testexec   {

/**
  *   @param   args
  */
public   static   void   main(String[]   args)   {
//   TODO   Auto-generated   method   stub
Runtime   runtime=Runtime.getRuntime();
String   command= "ps   aux|grep   aaa   >   kj.txt ";
try   {
runtime.exec(command);
}   catch   (IOException   e)   {
//   TODO   Auto-generated   catch   block
e.printStackTrace();
}
}

}

上面这段程序在Linux系统下运行就是不能生成kj.txt,更不用说把信息重定向到kj.txt里了。
如果换成String   command= " 'ps   aux|grep   aaa   >   kj.txt ' ";也不行。
但是如果在linux的命令行下直接输入ps   aux|grep   aaa   >   kj.txt就一切OK了。
奇怪不?你说是咋回事勒???

------解决方案--------------------
你要Process process=runtime.exec(command);
然后对process进行读取才是正途