我正在使用 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/