我试图运行pmcmd并从java传递参数。这是我的代码:

String cmd="C:\\Informatica\\9.6.1\\clients\\PowerCenterClient\\CommandLineUtilities\\PC\\server\\bin\\pmcmd.exe";
    final Process cmdProcess;

    cmdProcess = Runtime.getRuntime().exec(new String[]{cmd,"connect -sv IS_NAME -d DOMAIN_NAME -u USER -p PWD"});
    cmdProcess.getOutputStream().close();


问题是我无法获得所需的输出。我收到以下错误:

ERROR: Unknown command [connect]


当我在命令行上尝试相同的命令时,它将起作用。

pmcmd>connect -sv IS_NAME -d DOMAIN_NAME -u USER -p PWD


输出:

Connected to Integration Service:[IS_NAME].


谁能说出我在做什么错?

最佳答案

(根据OP运行后,添加我的评论作为答案)

您的命令行示例建议connect -sv ...在pmcmd进程内发出,而不作为参数提供。

因此,您应该将其发送到进程的STDIN(由cmdProcess.getOutputStream()访问),而不是将其作为参数传递给调用。

10-01 21:42