【发布时间】:2020-11-24 04:01:44
【问题描述】:
我正在尝试使用 Java 运行时调用/执行 C++ 编译器命令。
Runtime runtime = Runtime.getRuntime();
String[] command = { "cl", "/P", "/EP", "/C", "-D", "LOC" + loc_file, file};
Process process = runtime.exec(command);
process.waitFor();
但是我总是收到以下错误消息:
"Cannot run program "cl.exe" CreateProcess error=2, The system cannot find the file specified."
显然它没有找到 cl 程序。但是,我真的不知道如何配置 Java Runtime,以便找到 cl 程序。有没有办法为它设置某种 PATH 变量来查找 cl 程序?
如果我想在 cmd 中调用 cl 程序,我首先必须运行位于C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build 中的vcvars32.bat。然后我可以随心所欲地使用 cl 程序。但是我不知道如何通过 Java 代码来实现这一点。
【问题讨论】:
-
解决此问题的一种方法是从
cl程序位于PATH 中的环境启动您的Java 程序。在命令行中,您是否尝试过启动vcvars32.bat然后启动您的 java 程序? -
@Patrick ty 为您解答。我在eclipse中运行我的java程序。我将
cl.exe所在的文件夹添加到我的系统PATH并重新启动了eclipse。现在java程序成功执行了command/cl程序。但是,我从不打电话给vcvars32.bat,但我想它似乎仍然有效。 -
感谢您的跟进!我怀疑
vcvars.bat(我认为脚本名称的意思是“Visual Code environment VARiableS”)在 PATH 中添加了一些编译器,并且可能设置了一些 Visual Studio 使用的其他环境变量。cl.exe是由您手动添加还是由此脚本添加并不重要。
标签: java c++ process runtime execution