我正在尝试从我的 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++ 程序运行良好,但不会生成它应该生成的文件。当我在同一台机器上从命令行运行相同的命令时,它可以完美地生成所需的文件。我不确定我做错了什么。
最佳答案
从process中获取输出流和错误流看看会发生什么。
现在你在盲目地工作。
关于java - 从 Java 运行 C++ 可执行文件时没有错误或输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11242820/