有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    您需要命令数组中的第一个字符串作为可执行文件本身,而每个附加元素都是命令的参数。正如@Gordon Davisson所指出的,这个字符串[]应该是解析后的形式。现在它正在尝试执行无法工作的目录。请尝试将其指定为:

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

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