我想从JAVA开始工作流程。我使用SSH连接到Informatica服务器并执行命令pmcmd以启动工作流程

JSch js = new JSch();
        Session s = js.getSession("username", "host", 22);
        s.setPassword("password");
        Properties config = new Properties();
        config.put("StrictHostKeyChecking", "no");
        s.setConfig(config);
        s.connect();

        Channel c = s.openChannel("exec");
        ChannelExec ce = (ChannelExec) c;

        ce.setCommand("pmcmd startworkflow -sv integrationservice -d Domain_dwhetl -u user -p pass-usd hq -f dvl wf_test");
        //ce.setCommand("find -name PMCMD");
        ce.setErrStream(System.err);

        ce.connect();

        BufferedReader reader = new BufferedReader(new InputStreamReader(ce.getInputStream()));
        String line;
        while ((line = reader.readLine()) != null) {
          System.out.println(line);
        }

        ce.disconnect();
        s.disconnect();

        System.out.println("Exit code: " + ce.getExitStatus());


运行此命令时出现错误:bash:pmcmd:命令未找到。
如果我将路径添加到pmcmd.exe:

  ce.setCommand("/PMRootDir/pmcmd startworkflow -sv integrationservice -d Domain_dwhetl -u user -p pass-usd hq -f dvl wf_test");


我收到错误:/ PMRootDir / pmcmd:加载共享库时出错:libpmasrt.so:无法打开共享对象文件:没有这样的文件或目录

但是,当我直接在Informatica服务器中运行这些命令时,工作流将成功启动。

任何人都可以帮助解决这个问题吗?

谢谢!

最佳答案

您已将PATH设置为Informatica的安装位置,或更具体地说是pmcmd可执行文件所在的目录。
在调用pmcmd之前添加导出命令。

export PATH=<path Infa installation directory>:$PATH;

10-07 16:06