2

私は 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]]

明らかに、コマンドとその引数に何か問題があります。誰が私が間違っているのか教えてもらえますか? ありがとう。

4

1 に答える 1

1

2番目の引数は 、コマンドを実行するときにスペースが重要になることです" -encoding ""-encoding";)

于 2012-09-16T09:12:48.343 に答える