簡體   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