命令行输入的差异和Windows

时间:2016-04-08 10:10:31

标签: java cmd exec processbuilder

我想尝试使用Cygwin exe和dll文件在Windows上进行e2fsck。

幸运的是,当我尝试使用Windows命令行执行它时(例如" e2fsck.exe -f test.img"),它可以正常工作。

但是,我无法使用JAVA API,Runtime.getRuntime()。exec(" e2fsck.exe -f test.img")执行它。

进程的退出值为8,表示e2fsck的操作错误。当e2fsck无法访问目标文件或目标文件无效时,似乎返回退出值。

我发现了以下内容:

  1. 它不是由cmd.exe和exec()的字符串处理方式的差异引起的。 API调用上的任何其他cmd,例如... exec(" echo test!>> test.img"),都可以正常工作。 这意味着exec()API将正确的文件路径放到e2fsck或任何其他进程。

  2. 它不是由权限拒绝引起的。正如我在上面提到的那样,test.img可由exec()写入。

  3. ProcessBuilder无法解决此问题。

  4. 我无法找到问题的真正原因。

    我是否想念别的东西?

0 个答案:

没有答案
相关问题