我在使用java运行一个dos命令时候出现了一个问题:
该dos命令见如下代码中的command字符串,将该字符串敲入命令行界面运行良好,其中dtm-win32是一个可执行程序,后面跟着的是这个程序的诸多参数。这个可执行程序通常需要运行20分钟左右。
我想在java程序中运行该可执行程序,但是出现一个奇怪的现象:java程序成功启动了该可执行程序,但过了几秒钟后,这个可执行程序就阻塞了,当我终止了java程序后,该可执行程序后恢复了运行,而且每次都是这样,如果有人碰到类似的问题,希望可以帮我解决。
我的java程序如下(try catch段就不放上来了):
String command = "dtm-win32
--ntopics 20
--mode fit
--rng_seed 0
--initialize_lda true
--corpus_prefix test
--outname model_run
--top_chain_var 0.005
--alpha 0.01
--lda_sequence_min_iter 6
--lda_sequence_max_iter 20
--lda_max_em_iter 10";
Process process = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(newInputStreamReader(process.getInputStream()));
while((s = br.readLine()) != null) {
System.out.println(s);
}
br.close();
process.waitFor();