gpt4 book ai didi

java - 使用 Java 中设置的路径变量执行外部程序?

转载 作者:搜寻专家 更新时间:2023-11-01 02:29:59 25 4
gpt4 key购买 nike

我希望通过命令行执行外部程序,但我发现只有当程序存在于我调用它的目录中时我才能这样做。我希望能够从任何目录执行该程序。

我已经为 Windows (7) 设置了 Path 变量,并且能够使用命令行从任何目录手动执行程序;但是我无法通过 Java 这样做。

相关代码:

 Runtime rt = Runtime.getRuntime();

Process proc = rt.exec(new String[]{"C:\\AutomateKPI\\GetLog.exe", "-e", rossIP});

我的问题是上述程序的输出生成了一个通用命名的文件“log.txt”。这将在对我的程序进行线程处理时引起问题。如果无法使用路径变量,或者我可以将程序复制到新目录中,然后删除它。我想避免这样做。

编辑:上面的代码在 GetLog.exe 驻留在 C:\AutomateKPI 中时起作用。我想引用 %PATH% 以便我可以从 C:\AutomateKPI\*NewDir* 运行 GetLog.exe

最佳答案

尝试使用 ProcessBuilder .它允许您指定工作目录:

String commandPath = "C:" + File.pathSeparator +
AutomateKPI" + File.pathSeparator + "GetLog.exe";
ProcessBuilder pb = new ProcessBuilder(commandPath, "-e", rossIP);
pb.directory(new File("intendedWorkingDirectory"));
Process p = pb.start();

或者,如果 C:\AutomateKPI 在您的 %PATH% 中:

ProcessBuilder pb = new ProcessBuilder("GetLog.exe", "-e", rossIP);

从文档中不清楚,但 ProcessBuilder 似乎以类似于系统的方式定位事物,例如在 Windows 上使用 %PATH%

关于java - 使用 Java 中设置的路径变量执行外部程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11885326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com