我想尝试使用Cygwin exe和dll文件在Windows上进行e2fsck。
幸运的是,当我尝试使用Windows命令行执行它时(例如" e2fsck.exe -f test.img"),它可以正常工作。
但是,我无法使用JAVA API,Runtime.getRuntime()。exec(" e2fsck.exe -f test.img")执行它。
进程的退出值为8,表示e2fsck的操作错误。当e2fsck无法访问目标文件或目标文件无效时,似乎返回退出值。
我发现了以下内容:
它不是由cmd.exe和exec()的字符串处理方式的差异引起的。 API调用上的任何其他cmd,例如... exec(" echo test!>> test.img"),都可以正常工作。 这意味着exec()API将正确的文件路径放到e2fsck或任何其他进程。
它不是由权限拒绝引起的。正如我在上面提到的那样,test.img可由exec()写入。
ProcessBuilder无法解决此问题。
我无法找到问题的真正原因。
我是否想念别的东西?