【问题标题】:Execute cl command with Java Runtime from anywhere从任何地方使用 Java Runtime 执行 cl 命令
【发布时间】: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


【解决方案1】:

在您的情况下,我认为您的问题有两种解决方案:

1 更改系统上的 PATH 并在此更新后的环境中启动程序

根据您在问题下的评论判断,这就是您所做的。

您可以通过调整环境变量,然后使用更新后的环境重新启动您的 java 程序,在系统的“PATH”中手动添加要启动的程序。

2 在 Eclipse 中,仅为您的程序修改 PATH 环境变量

由于您提到您使用的是 Eclipse,因此有一种替代方法可以在操作系统配置中修改 PATH。

在 Eclipse 的 Run Configurations 中,有一个 Environment 选项卡,您可以在其中定义新的环境变量或为您的特定程序修改现有的环境变量。您可以在此处对 PATH 进行修改,如下所示:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    相关资源
    最近更新 更多