我想从我的Java Web应用程序运行C++可执行文件。当我进入相关页面时,它会执行命令并运行可执行文件,但不会产生任何输出。从Java运行C++可执行文件时没有错误或输出
这里是我的代码:
URL createWav = QRcodeController.class.getClassLoader().getResource("createWav");
log.info("The path of the c++ executable obtained: "+ createWav.getPath());
Process p1 = Runtime.getRuntime().exec("chmod 777 " + createWav.getPath());
p1.waitFor();
int exitVal=1;
try {
Process p2 = Runtime.getRuntime().exec(createWav.getPath(), args);
exitVal = p2.waitFor();
}
catch (Exception e)
{
log.error(e.getStackTrace());
}
if(exitVal == 1)
throw new Exception("Error in c++ program");
所以C++程序运行正常,但它不会产生它应该是文件它不会引发任何错误。当我在同一台机器上从命令行运行相同的命令时,它完美地生成了所需的文件。我不确定我做错了什么。
你可以用硬编码路径重试吗?这可能是由Java程序创建的文件,但位于不同的位置。 – Stefan
它无法运行该程序,因此我无法找到该文件。谢谢。 – ishan