我正在尝试从我的 Java Web 应用程序运行 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++ 程序运行良好,但它不会生成它应该生成的文件。当我在同一台机器上从命令行运行相同的命令时,它可以完美地生成所需的文件。我不确定我做错了什么。