Runtime.getRuntime()。exec(commandStr)无法在Mac OS X 10.12(Sierra)上运行

时间:2016-11-24 13:16:41

标签: java macos runtime.exec

您好我正在尝试创建一个目录,并使用已创建的目录执行所选网络驱动器的挂载操作。该代码正在开发其他OS X版本,如OS X Lion或Caption,但不适用于OS X 10.12(Sierra) 请建议此代码如何工作。

proc=Runtime.getRuntime().exec(new String[]{"/bin/mkdir","/Volumes/Library"+count});  
int exitCode = proc.waitFor();
System.out.println("Exit code : "+exitCode);

然后安装驱动器

String[] commandArr = new String[]{"/sbin/mount","-t","smbfs","//username:password@IP-Of-System/library"," /Volumes/Library"+count};
proc = Runtime.getRuntime().exec(commandArr);

此命令正在使用终端运行但未使用Runtime.getRuntime()。exec()执行。

请帮忙。

1 个答案:

答案 0 :(得分:0)

重要的是getRuntime()。exec不会给你一个完整的shell。 您不能假设您可以使用shell执行任何操作("命令行")。

您可以尝试使用ProcessBuilder.start()(在Runtime.exec文档中推荐),但这可能也不会有帮助。

要使其工作,您可以创建一个执行所需操作的shell脚本,然后使用Runtime.exec或ProcessBuilder.start执行脚本,并将适当的参数传递给它。