我需要从我的Java应用程序运行用C编写的外部程序。
我试图使用Runtime.getRuntime().exec()
取得部分成功。我使用带有.exe文件路径的String执行程序及其参数:
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line=null;
while((line=input.readLine()) != null) {
log.info(line);
}
int exitVal = pr.waitFor();
这样可以正常工作 - 程序执行并将有关其行为的信息发送到控制台。问题是外部程序在执行期间尝试运行其他子程序。基本上我需要做的是:我用我的Java应用程序运行program.exe
,program.exe
运行subprogram.exe
。不幸的是,情况并非如此,因为subprogram.exe
永远不会在当前情况下开始。
我应该采取哪些不同的方式来使其发挥作用?谢谢你的帮助。
我决定让它变得如此复杂,我很乐意只有一个.exe文件来执行,但我不能。
答案 0 :(得分:0)
尝试从cmd.exe(即命令提示符)运行它,看看它是否正常工作。控制台输出应该为您提供程序执行的跟踪。