如何从 java 代码执行以下命令行表达式?

How to execute the following command line expression from java code?

我正在使用 Mac,我正在尝试 运行 下面的命令使用 java 代码来激活 Sauce 连接以连接到 sauce lab

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();
    }

您需要命令数组中的第一个字符串作为可执行文件本身,而每个附加元素都是命令的参数。正如@Gordon Davisson 指出的那样,这个 String[] 应该是 post-parsing 形式。现在它正在尝试执行不起作用的目录。尝试将其指定为:

String[] command = { "/Users/username/Documents/sc-4.5.4-osx/bin/sc", "-uusername", "-kaccesskey" };

编辑 1 添加有关 args 的更多信息(感谢@GordonDavisson)