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