macos如何从java代码执行以下命令行表达式?
我正在使用Mac,我正在尝试使用java代码运行下面的命令来激活Sauce连接,以连接到Sauce实验室
bin/sc -u "username" -k "ACCESS KEY"
我必须在一个特定的文件夹中运行它,想象一下我的文件夹位于其中
/Users/username/Documents/sc-4.5.4-osx
但当我运行代码时,我得到了以下异常
java.io.IOException: Cannot run program "/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();
}
# 1 楼答案
您需要命令数组中的第一个字符串作为可执行文件本身,而每个附加元素都是命令的参数。正如@Gordon Davisson所指出的,这个字符串[]应该是解析后的形式。现在它正在尝试执行无法工作的目录。请尝试将其指定为:
String[] command = { "/Users/username/Documents/sc-4.5.4-osx/bin/sc", "-uusername", "-kaccesskey" };
编辑1 添加有关args的更多信息(感谢@GordonDavisson)