【发布时间】:2012-08-09 14:09:48
【问题描述】:
我希望通过命令行执行一个外部程序,但我发现只有在我调用它的目录中存在该程序时才能执行此操作。我希望能够从任何目录执行程序。
我已经为 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【问题讨论】:
-
你得到的错误是什么,也是c:\automateKPI目录下的GetLog.exe?
-
我没有收到错误,但我想线程化我的程序并在各个目录中执行 GetLog.exe。 C:\AutomateKPI*NewDir*\GetLog.exe 无需将GetLog.exe复制到新创建的目录中
-
是的,您的问题是您提供了 getlog.exe 的完整路径,但该路径中不存在该路径。您需要在实际路径中执行getlog.exe,然后提供一个工作目录。
标签: java variables path cmd external