public static void main(String[] args) throws Exception {
System.setOut(new PrintStream(
new FileOutputStream("/home/main/smt/output/out.txt")));
try {
String line;
Process p = Runtime.getRuntime().exec(
"/home/main/smt/tools/moses-2010-08-13/moses/moses-cmd/src/moses " +
"-f /home/main/smt/work/model/moses.ini " +
"< /home/main/smt/work/corpus/dataset.en" );
BufferedReader in = new BufferedReader(
new InputStreamReader(p.getInputStream()) );
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
}
catch (Exception e) {
// ...
}
}
コマンド
home/main/smt/tools/moses-2010-08-13/moses/moses-cmd/src/moses
-f /home/main/smt/work/model/moses.ini
< /home/main/smt/work/corpus/dataset.en
>/home/main/smt/output/out.txt
Linuxのターミナルで実行されてout.txt
作成されます。しかし、Javaではout.txt
作成されません。
dataset.en
入力ファイルです。src
モデル内およびモデル内にあるexe mosesを使用するとmoses.ini
、dataset.enのコンテンツが翻訳され、に保存されout.txt
ます。しかし、ここでこのコードを実行している間、何out.txt
も作成されません。コンソールには何も表示されませんが、出力をファイルに保存するコマンドを削除しました。私が変更 Process p = Runtime.getRuntime().exec(ls)
した場合、正常に動作します。