将应用程序本身制作为EXE时,Runtime.getRuntime()无法执行EXE文件

时间:2018-10-04 13:47:37

标签: java windows maven command-line runtime.exec

我被问到我的问题了。但是我找不到正确的答案。 我有一个Java Maven应用程序,将运行EXE文件内部代码。我使用了Runtime.getRuntime().exec。应该没事的当您构建一个jar文件并运行它时,它运行良好。但是,当您通过自己的应用程序制作exe文件时,问题就会显现出来。

我想从Java应用程序(我使用过Launch4j)创建一个执行文件,并在其内部运行某些内容,例如运行另一个exe文件。不幸的是,上述代码无法正常工作,并且我还没有收到任何错误。

Process proc = Runtime.getRuntime()
                .exec("cmd /c start \"\" \"" + destinationPath + "\\run_service.exe\"");
    BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));

    // Display Errors in logfile
    BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));

    // read the output from the command
    logger.info("Here is the standard output of the Process:\n");
    String msg = null;
    while ((msg = stdInput.readLine()) != null) {
        logger.info(msg);
    }

    // read any errors from the attempted command
    logger.info("Here is the standard error of the Process (if any):\n");
    while ((msg = stdError.readLine()) != null) {
        logger.info(msg);
    }

如果有人对此有更多的了解,请告诉我。

0 个答案:

没有答案