我正在与 Java 的 Runtime exec 方法中的空格错误作斗争。这是这个问题的独特之处:我试图执行的命令是一个传入的字符串,可能有也可能没有空格,不一定是任何特定的格式。无论哪种方式,我都需要执行它。如果没有空格,我很好;如果有空格,我就不那么好了。
我如何考虑这两种情况?
无需额外费用的奖励信息:一个大问题似乎是我试图在 c:\program files\blablabla... 中调用一个可执行文件,而 exec 似乎在 'c:\program' . 我相信参数也会出现其他问题。
这是我可能得到的字符串类型的更具体示例。这应该可以消除一些困惑:
- c:\someApp\someapp.exe
- c:\someApp\someapp.exe -someParam=foo
- c:\程序文件\someapp\someapp.exe
- c:\程序文件\someapp\someapp.exe -someParam=bar
第一个工作正常,因为它没有空格。第二个甚至可以,因为它在空间上拆分并使用第一个作为命令,第二个作为参数。第三个和第四个例子在第一个空格上分开,使用'C:\program'和命令'files...'和(在第四个字符串的情况下)'-someParam=bar'作为参数。