【发布时间】:2020-02-01 04:16:08
【问题描述】:
我正在使用 Mac,我正在尝试使用 java 代码运行以下命令来激活 Sauce 连接以连接到 Sauce Lab
bin/sc -u "username" -k "ACCESS KEY"
我必须在特定文件夹中运行它,假设我的文件夹位于其中
/Users/username/Documents/sc-4.5.4-osx
但我在运行代码时遇到异常
java.io.IOException: 无法运行程序 "/Users/username/Documents/sc-4.5.4-osx": error=13, Permission denied
包括下面的代码
String[] command = { "/Users/username/Documents/sc-4.5.4-osx", "bin/sc -u username -k accesskey" };
try {
Runtime.getRuntime().exec(command);
System.out.println("tunnel started");
} catch (IOException e) {
e.printStackTrace();
}
【问题讨论】:
-
您需要命令数组中的第一个字符串作为可执行文件本身。尝试将其指定为:
String[] command = { "/Users/username/Documents/sc-4.5.4-osx/bin/sc", "-uusername", "-kaccesskey" }; -
好的,现在没有异常,我认为它正在运行,我还有一个疑问,有没有一种方法可以让我们在执行命令时直观地看到或得到正在发生的事情的响应?看起来命令已执行,但酱汁连接仍然未激活,所以我想通过查看命令行响应进行调试。感谢 Mcarlin 的帮助
-
Runtime.getRuntime().exec(command)返回一个Process object,它具有获取输出流和错误流的方法。从那里您可以读取该过程的输出。 -
谢谢你 MCarlin,我会试试的
-
没问题,祝你好运!
标签: java macos unix command-line saucelabs