我正在尝试使用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运行时才能找到cl程序。有没有一种方法可以设置某种PATH变量来查找cl程序?如果要在cmd中调用cl程序,则首先必须运行
vcvars32.bat
中的C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build
。然后,我可以根据需要使用cl程序。但是我不知道如何通过Java代码完成此任务。
最佳答案
根据您的情况,我认为有两种解决方案:
1更改系统上的PATH并在此更新的环境中启动程序
这是您已经根据问题下的评论来判断的。
您可以通过调整环境变量,然后在更新的环境中重新启动Java程序,来在系统的“PATH”中手动添加要启动的程序。
2在Eclipse中,仅为您的程序修改PATH环境变量
既然您提到您正在使用Eclipse,那么除了在操作系统配置中修改PATH外,还有一种替代方法。
在Eclipse的Run Configurations
中,有一个Environment
选项卡,您可以在其中定义新的环境变量或为特定程序修改现有的环境变量。您可以使用以下类似方法对PATH进行修改:
关于java - 从任何地方使用Java Runtime执行cl命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63240411/