[英]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.