我正在尝试使用Java内部的一些参数运行一个进程,在运行特定命令之前,我使用println
打印它。
现在问题来自Java内部,这个过程做得不好..它在错误流而不是输出上发送一些错误。但是,如果我在控制台的屏幕上运行由Java打印的相同命令,它可以完美地运行。
String command="abc -def -hhij";
System.out.println(command);
Process p = Runtime.getRuntime.exec(command);
任何人都知道什么是错的?
答案 0 :(得分:2)
使用StringTokenizer的Runtime.exec(String),它不知道如何处理引用的文本。最简单的解决方法是使用接受数组中参数的exec。
String[] command={ "abc", "-def", "-hhij"};
Process p = Runtime.getRuntime.exec(command);
答案 1 :(得分:1)
我会尝试只是为了逃避那些'('与\:'\\('(由于Java转义规则而加倍)
答案 2 :(得分:0)
该命令很可能需要命令的完整路径。 C:\ dir \ abc.exe或其他。
如果是脚本,请确保它由正确的shell执行。