首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过ProcessBuilder进行文档检索

通过ProcessBuilder进行文档检索
EN

Stack Overflow用户
提问于 2014-11-10 17:57:14
回答 1查看 440关注 0票数 0

我正在尝试构建一个java进程,通过命令行执行产品。我已经编写了基于给定属性文件执行的进程。

代码语言:javascript
复制
        buildRoot = isWindowsOs() ? "C:" + "\\Program Files (x86)\\DocuSign, Inc\\Retrieve 3.2" : "\\Program Files (x86)\\DocuSign, Inc\\Retrieve 3.2" ;

        String[] command = new String [2];

        command[0] = "\""+buildRoot+ "\\" + docuSignAppName+"\"";
        logger.info(command[0].toString());
        //ADDED FOR EXPLANATION - "C:\Program Files (x86)\DocuSign, Inc\Retrieve 3.2\DocuSignRetrieve.exe"
        command[1] = arguments;
        logger.info(command[1].toString());

        ProcessBuilder processBuilder = new ProcessBuilder(command);
        logger.info("ProcessBuilder starting directory" +processBuilder.directory());
        processBuilder.redirectErrorStream(true);
        p = processBuilder.start();

        InputStream is = p.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        stdout = new BufferedReader(isr);

一旦我传入构建出来的参数字符串,执行的代码看起来就像提供的样例,但是总是会导致错误返回到屏幕“缺失"accountid”参数“。

参数列表如下所示。

代码语言:javascript
复制
 /endpoint "Demo"      /userid "REMOVED"      /password "REMOVED"      /accountid "REMOVED"      /span "-1"      /spanfilter "Completed"      /statusfilter "Completed"      /fieldlog "LIST OF FIELDS"      /nstyle "EnvelopeID"      /save "MergedPdfWithoutCert"      /dir "D:\DocuSignStore"      /includeheaders "true" 

如有任何帮助或协助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-13 00:48:53

这个解决方案是在StackOverflow关于与ProcessBuilder的共同问题的讨论中找到的。

我的问题是,我期望通过更改整个路径的放置,我可以运行可执行文件。因为我现在不确定的原因,这不像预期的那样有效。解决方案是运行CMD命令,该命令存在于任何windows操作系统的%PATH%上。

代码语言:javascript
复制
    String[] command = new String [2];

    command[0] = "\""+buildRoot+ "\\" + docuSignAppName+"\"";
    logger.info(command[0].toString());
    //ADDED FOR EXPLANATION - "C:\Program Files (x86)\DocuSign, Inc\Retrieve 3.2\DocuSignRetrieve.exe"
    command[1] = arguments;
    logger.info(command[1].toString());
    //This starts a new command prompt
    ProcessBuilder processBuilder = new ProcessBuilder("cmd","/c","DocusignRetreive.exe);
    //This sets the directory to run the command prompt from
    File newLoc = new File("C:/Program Files (x86)/DocuSign, Inc/Retrieve 3.2");
    processBuilder.directory(newLoc);
    logger.info("ProcessBuilder starting directory" +processBuilder.directory());
    processBuilder.redirectErrorStream(true);

    /*When the process builder starts the prompt looks like
     *C:\Program Files (x86)\DocuSign, Inc\Retrieve 3.2
     *Now DocusignRetrieve.exe is an executable in the directory to be run
     */
    p = processBuilder.start();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26849931

复制
相关文章

相似问题

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