0

在不使用 ProcessBuilder 的情况下,我可以通过提示成功运行此命令。

winexe --user \administrator --password foo //192.168.1.13 "msiexec /qn /i \setup.msi"

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

ProcessBuilder(String[] commands)

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

[0] winexe
[1] --user \administrator
[2] --password foo
[3] //192.168.1.13
[4] "msiexec /qn /i \setup.msi"

输出如下所示,所以我知道 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]
        ...
4

1 回答 1

8

您将 ProcessBuilder 命令行标记与您尝试执行的命令的逻辑分组混淆了。该命令不接受参数“--password<space>foo”,但数组的第三个元素仍然尝试传递这样的东西。

你有没有尝试过

[0] winexe
[1] --user
[2] \administrator
[3] --password
[4] foo
[5] //192.168.1.13
[6] msiexec /qn /i \setup.msi

?

于 2013-10-14T22:28:01.037 回答