如下:单独把cmd里的东西在命令行执行,没有任何问题。
但是用java代码执行,就会阻塞Process process;
String cmd="indexer --config c:/sphinx.conf articleIndex645672748";
process = Runtime.getRuntime().exec(cmd);
process.waitFor();
System.out.println("indexer ok !");
//下面还有命令,所以需要等这个进程完成后再往下执行
cmd = "...";
但是用java代码执行,就会阻塞Process process;
String cmd="indexer --config c:/sphinx.conf articleIndex645672748";
process = Runtime.getRuntime().exec(cmd);
process.waitFor();
System.out.println("indexer ok !");
//下面还有命令,所以需要等这个进程完成后再往下执行
cmd = "...";
解决方案 »
- 今儿面试的几道题,大家帮看看
- spark编译运行问题
- poi操作Excel实现分页
- struts1.配置文件执行
- 使用wsdl2java根据WSDL生成的代码在调用时发生错误
- 高分跟诚心寻找精通SUPERSITE的人,完善X-SPACE的细节,谢谢各位!谢谢啦!
- web.xml问题
- PreparedStatement .executeQuery()执行异常,提示 Incorrect syntax near '@P1'.
- 报警器的问题,有人做过吗?!!!!!!!
- 急啊!Spring的问题!大家看着给解决一下吧
- JAVA EE我该怎么走?
- 急求!!java swing中点击按钮弹出日历对话框,可选择日期显示在文本框中,文本框和按钮在jpanel中
加上这句 int i = process.waitFor(); System.out.println("i>>>"+i);
看下i是多少,if是0表示正常结束进程,else就是你进程没正常结束。
public abstract int waitFor()
throws InterruptedException导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程。 返回:
进程的出口值。根据惯例,0 表示正常终止。
抛出:
InterruptedException - 如果当前线程在等待时被另一线程中断,则停止等待,抛出 InterruptedException。
int a = -1;
while((a=fo.read())!=-1){
System.out.print((char)a);
}
我输出后就可以执行完成输出 indexer ok!
不输出就死在那儿