有一些通过Runtime.getRuntime.exec(String)运行命令的代码,它可以在Windows上运行。当我将代码移动到Linux时,它崩溃了,修复它的唯一方法是切换到exec(String [])版本。如果我这样离开,代码在Windows和Linux上的工作方式是否相同,或者我应该在Windows上使用exec(String)和在Linux上使用exec(String [])?
发布于 2018-10-08 07:54:06
用于将exec(String)参数拆分为String []的默认Tokeniser只是按空格字符拆分它们。不会像手动输入的shell命令那样解释引号,因此您应该调用String []版本。但是,如果您在两个平台上使用Sun JDK,则行为应该类似。但是,由于Windows提供与其他操作系统不同的shell命令(例如复制而不是cp),因此你的命令可能无法在所有平台上运行。
https://stackoverflow.com/questions/-100000825
复制相似问题