首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从java运行pmcmd

从java运行pmcmd
EN

Stack Overflow用户
提问于 2017-10-05 18:14:53
回答 3查看 1.1K关注 0票数 0

我正在尝试运行pmcmd并从java传递参数。这是我的密码:

代码语言:javascript
复制
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();

问题是我无法得到理想的输出。我得到以下错误:

代码语言:javascript
复制
ERROR: Unknown command [connect]

当我在命令行上尝试相同的命令时,它可以工作。

代码语言:javascript
复制
pmcmd>connect -sv IS_NAME -d DOMAIN_NAME -u USER -p PWD

产出:

代码语言:javascript
复制
Connected to Integration Service:[IS_NAME].

有人能看出我犯了什么错误吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-06 08:19:02

我不得不在pmcmd进程中发出命令。所以我修改了我的代码,它起作用了:

代码语言:javascript
复制
                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,""});
                OutputStream out = cmdProcess.getOutputStream();
                out.write("connect  -sv IS_NAME -d DOMAIN_NAME -u USER -p PWD".getBytes());
                out.close;
票数 0
EN

Stack Overflow用户

发布于 2017-10-06 08:23:27

(在按照“任择议定书”工作之后,添加我的评论作为回答)

命令行示例表明,connect -sv ...是在pmcmd进程中发出的,而不是作为参数提供的。

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

票数 1
EN

Stack Overflow用户

发布于 2017-10-05 23:51:21

pmcmd工作在两种模式,命令行和交互式。connect命令只在交互模式下工作。

从java调用时,您使用的是命令行模式,不需要先连接。您可以直接调用要运行的命令(例如。( startWorkflow)并使用该命令提供连接参数,如下所示:

代码语言:javascript
复制
pmcmd startworkflow -sv MyIntService -d MyDomain -u seller3 -p jackson ‑f SalesEast wf_SalesAvg

更多细节这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46592292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档