我刚刚切换到在 Mac 上工作,我试图确定为什么我无法Eclipse
识别我试图通过ProcessBuilder
.
我试图将它作为输入Java Application
和Eclipse
测试TestNG
运行。
如果我编译类java
并直接从命令行运行它,它将工作但不能通过 Eclipse,这让我相信我的配置中的配置$PATH
没有正确设置TestNG
。
问题
我确信这是 Eclipse 中的一个配置问题,但是在搜索了一天之后,我想发布一些帮助。我试图设置$PATH
配置,但它似乎不起作用。
谢谢
更新/回答
事实证明,PATH
我在下面显示的 shell 上设置的与Java
我使用下面的代码检查的不同。在验证之后,我在 ProcessBuilder 上添加了我的环境的正确路径并执行了脚本,如答案所示。
Map<String, String> env = processBuilder.environment();
for (String key : env.keySet())
System.out.println(key + ": " + env.get(key));
Map<String, String> envs = processBuilder.environment();
System.out.println("Path " + envs.get("PATH"));
envs.put("PATH", "/usr/local/bin");
System.out.println("PATH " + envs.get("PATH"));
代码
File logsDir = new File(logDirectory);
if (!logsDir.exists()) {
logsDir.mkdirs();
}
// run process directly
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("appium");
processBuilder.redirectError(new File(logsDir, "appiumError.txt"));
processBuilder.redirectOutput(new File(logsDir, "appiumOutput.txt"));
process = processBuilder.start();
输出(它找不到node
运行 appium 因此No such file or directory
)
Caused by: java.io.IOException: Cannot run program "appium": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at AppiumService.startAppium(AppiumService.java:77)
路径(node
和的 binappium
在 /usr/local/bin 中)
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:
/usr/local/opt/ant/bin:/usr/local/opt/maven/bin:
/usr/local/opt/gradle/bin