奇怪的错误JAVA进程执行

时间:2011-12-06 05:26:13

标签: java

  

可能重复:
  run shell command from java

我正在尝试使用Java内部的一些参数运行一个进程,在运行特定命令之前,我使用println打印它。

现在问题来自Java内部,这个过程做得不好..它在错误流而不是输出上发送一些错误。但是,如果我在控制台的屏幕上运行由Java打印的相同命令,它可以完美地运行。

String command="abc -def -hhij";
System.out.println(command);
Process p = Runtime.getRuntime.exec(command);

任何人都知道什么是错的?

3 个答案:

答案 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执行。