繁体   English   中英

为什么流程会运行但不显示?

[英]Why does a process run but not show?

我有一个java应用程序,下载并运行另一个程序。 我遇到的问题是,当它运行程序时,没有视觉效果; 但是,该过程显示在Windows任务管理器中。

这是相关的执行代码:

String[] cmd = {System.getProperty("java.io.tmpdir") + PACKAGE_PATH + onePackage};
log.info("Package downloaded to: " + cmd[0]);
new ProcessBuilder(cmd[0]).start();

我还使用了Runtime.exec()并产生了相同的结果。

这是一个产生相同结果的Commons Exec版本:

String line = "cmd.exe start /c " + "\"" + cmd[0] + "\""; 
CommandLine cmdLine = CommandLine.parse(line);
DefaultExecutor executor = new DefaultExecutor();
int exitValue = executor.execute(cmdLine);

最后一点,它在Eclipse的Win7桌面上运行良好,但在Windows Server 2008 R2上运行不正常。

您可以使用以下代码执行此操作:

import java.io.IOException;

public class TestClass {
    public static void main(String[] args) throws IOException {
        Runtime rt = Runtime.getRuntime();  
        Process pr = rt.exec("cmd.exe /c mspaint.exe");
    }
}

与背景相比,这将导致mspaint.exe在前台启动。 但是,由于您通过cmd.exe执行此操作,该过程在mspaint.exe启动后立即结束,导致java程序完成其执行,无论mspaint.exe的状态如何,这可能适合您的情况。

如果您需要等待它完成,我建议您查看Commons Exec

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM