2017-03-20 13 views

回答

0

尝试通过每个参数单独,而不是在一个字符串结合整个命令:

String[] cmd = {"./Hello","<","in.txt"}; 

Runtime rt = Runtime.getRuntime(); 
Process proc = rt.exec(cmd); 

希望这有助于;

0

我认为这是,你想从执行的命令得到输出。当调用Runtime.exec("<some command>")时,Java会设置独立的IO-Stream来读写执行的命令。

如果你要打印的命令,命令行的结果,那么你可以做这样的事情:

public class Test { 


    public static void main(String[] args) throws IOException 
    { 
     int read; 
     byte[] buffer = new byte[1024]; 
     Process p = Runtime.getRuntime().exec("echo HELLO-THERE"); 
     InputStream is = p.getInputStream(); 
     while (is.available() > 0) { 
      read = is.read(buffer); 
      System.out.println(new String(buffer, 0, read, "UTF-8")); 
     } 
    } 
} 

这将产生这样的:

HELLO-THERE 

一般来说,在情况像这样,你最好阅读java文档:https://docs.oracle.com/javase/7/docs/api/

相关问题