我试图运行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()
访问),而不是将其作为参数传递给调用。