如何从 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)
我正在使用 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)