私は 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]]
明らかに、コマンドとその引数に何か問題があります。誰が私が間違っているのか教えてもらえますか? ありがとう。