无法运行ProcessBuilder

时间:2012-09-16 08:57:17

标签: java processbuilder

我正在与ProcessBuilder人员挣扎!我想运行实用程序'nativetoascii'。我可以在命令行上运行它,也可以通过Runtime.exec()运行它没有问题。

我的代码是:

'     
  String command = "\"C:\\Program Files (x86)\\Java\\jdk1.6.0_32\\bin\\native2ascii\"";
  String encoding = " -encoding ";
  String utf8 = "UTF8 ";
  String inputFile = "C:\\Users\\joe\\Desktop\\resources\\encoding\\orig.properties ";
  String outputFile ="C:\\Users\\joe\\Desktop\\resources\\encoding\\convertedViaProcessBuilder.properties";

  List<String> commandArgs = new ArrayList<String>();
  commandArgs.add(command);
  commandArgs.add(encoding);
  commandArgs.add(utf8);
  commandArgs.add(inputFile);
  commandArgs.add(outputFile);

  ProcessBuilder builder = new ProcessBuilder(commandArgs);
  Process p = builder.start();
  p.waitFor();

我还编写了代码来读取进程的输出,并说:

Usage: native2ascii [-reverse] [-encoding encoding] [inputfile [outputfile]]

显然我对命令及其参数做错了。谁能告诉我我做错了什么?感谢。

1 个答案:

答案 0 :(得分:1)

你的第二个参数是" -encoding " "-encoding"当你运行一个命令时,空格很重要。 ;)