2013-01-06 39 views
0

我想打開一個新的終端窗口並在java代碼中執行我的程序。所以我使用:如何在java中打開終端窗口並執行客戶程序

Runtime.getRuntime().exec("gnome-terminal -x /path/to/my/program arg1 arg2"); 

這在Ubuntu中很好用,但不幸的是它在CentOS中不起作用,問題是終端窗口立即關閉。

我有很多時間在stackoverflow中搜索,但找不到解決方案。非常感謝你!!!

+0

你正在嘗試做什麼終端模擬器/桌面環境for/under? – Tawnos

+3

較新的替代ProcessBuilder涵蓋了exec的一些脆弱性。 –

+3

1)創建新進程時常犯的錯誤 - 詳見[Runtime.exec()不會]](http://www.javaworld.com/javaworld/jw-12-2000/jw-1229- traps.html)。文章是檢查流程是否失敗的第一件事。實施*所有*的提示,即使這樣做不會使過程工作,它會提供更多關於失敗原因的更詳細信息。 2)使用'ProcessBuilder'來構建過程。 3)爲了獲得更可靠的結果,請將基於String的參數設置爲String []。 –

回答

0

謝謝大家。我發現當我將我的程序複製到CentOS時,執行權限被遺漏,終端無法執行它,然後解僱。

0
try{ 
    Process pr =new ProcessBuilder("gnome-terminal", "-e", "pathToScript/script.sh").start(); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    } 
相關問題