java - 从任何地方使用Java Runtime执行cl命令

标签 java c++ process runtime execution

我正在尝试使用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进行修改:
enter image description here

关于java - 从任何地方使用Java Runtime执行cl命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63240411/

相关文章:

创建进程池 C Linux

python - 如何让 python 模块异步运行并接收来自其他模块的调用?

cocoa - 当进程或应用程序被终止/强制终止时收到通知吗?

c++ - 继承构造函数输出

c++ - 将 std::istream::sentry 与 std::istream 一起使用

c++ - `short int` 与 `int`

java - EditText.GetText,返回有关空引用的异常,但已声明

java - 黑莓编程——创建无边框弹出屏幕

java - 降低 Java 程序中的 CPU 利用率

Java代码: Cant move JButtons in JFrame