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

标签 java macos unix command-line saucelabs

我正在使用 Mac,我正在尝试使用 java 代码运行以下命令来激活 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();
    }

最佳答案

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

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

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

关于java - 如何从java代码执行以下命令行表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58209051/

相关文章:

java - 使用 JmsTemplate 发送到 ActiveMQ 时出现文本消息编码问题

android - 终端显示 "Sorry, could not find a PTY"怎么办? (Mac 操作系统)

macos - Ctrl + <Arrow Keys> 的 iTerm Emacs 键代码

c - 并发进程的 FIFO 问题

c - 使用静态库构建共享库时符号的多重定义

java - java中的方法重载和继承

java - Android 应该使用哪些端口?

java - 如何使用java从clear quest下载附件

macos - 如何在 Mac OS 中复制文件的路径?

linux - 我正在尝试更改文件名,但脚本给了我错误