Java ProcessBuilder无法执行我的命令

bey*_*ddc 0 java

不使用ProcessBuilder,我可以通过提示成功运行此命令.

winexe --user \administrator --password foo //192.168.1.13 "msiexec /qn /i \setup.msi"
Run Code Online (Sandbox Code Playgroud)

我正在通过这个构造函数创建我的ProcessBuilder

ProcessBuilder(String[] commands)
Run Code Online (Sandbox Code Playgroud)

我传递给ProcessBuilder的String []参数如下

[0] winexe
[1] --user \administrator
[2] --password foo
[3] //192.168.1.13
[4] "msiexec /qn /i \setup.msi"
Run Code Online (Sandbox Code Playgroud)

输出如下所示,所以我知道ProcessBuilder正在执行命令,除了我传入的参数似乎不正确.谁能发现我做错了什么?

winexe version 0.90
This program may be freely redistributed under the terms of the GNU GPL
Usage: winexe [-?|--help] [--usage] [-d|--debuglevel DEBUGLEVEL]
        [--debug-stderr] [-s|--configfile CONFIGFILE] [--option=name=value]
        [-l|--log-basename LOGFILEBASE] [--leak-report] [--leak-report-full]
        [-R|--name-resolve NAME-RESOLVE-ORDER]
        ...
Run Code Online (Sandbox Code Playgroud)

Jud*_*tal 8

您将ProcessBuilder命令行令牌与您尝试执行的命令的逻辑分组混淆.这个命令不接受参数"--password <space> foo",但是数组的第3个元素仍尝试传递这样的东西.

你有没有尝试过

[0] winexe
[1] --user
[2] \administrator
[3] --password
[4] foo
[5] //192.168.1.13
[6] msiexec /qn /i \setup.msi
Run Code Online (Sandbox Code Playgroud)