这是一些问题,我也遇到过!执行一些命令的时候直接使用的时候可以实现命令的用途,但是用runtime的时候就不行,
我在linux下想把top命令的结果输入文件,结果直接用“>”没有实现个人觉得是不是其中有些地方流的处理的问题
要知道Runtime.exec()执行的返回结果是Process类型的。我的解决办法是直接对Process里面的流文件自己做一些处理,不知道你的是否也可以呢?
试一试!!

解决方案 »

  1.   

    你最好指定一下你那些命令地执行文件路径名称比如keytool.exe的位置,估计是程序在系统路径里面找不到这个东东
      

  2.   

    Process ps = Runtime.getRuntime().exec(cmd1); InputStream is = ps.getErrorStream();    //查看是否有出错信息
      

  3.   

    第一个cmd1应该生成一个文件,
    然后cmd2、com3要用到第一个文件,生成两个文件。
    现在我运行一次,只能生成第一个文件,然后又运行一边,才能生成后两个。
    是不是因为这个原因,难道是第一次运行这个程序,当运行到cmd2和cmd3的时候,cmd1的文件还没有完全生成完吗?java代码执行不是完全按照顺序来的吗?麻烦大家帮我看看了!!
      

  4.   

    应该把命令和参数放到数组里
    String[] cmd1={"keytool","-genkey",.....}然后执行
    Runtime.getRuntime().exec(cmd1);
      

  5.   

    Runtime.getRuntime().exec()
    Process p = Runtime.getRuntime().exec("cmd.exe /c start d:/qq.exe");
      

  6.   

    如果你需要命令的顺序执行:
    Runtime.getRuntime().exec(cmd1).waitFor();
    Runtime.getRuntime().exec(cmd2).waitFor();
    Runtime.getRuntime().exec(cmd3).waitFor();
    Runtime.getRuntime().exec(cmd4).waitFor();