2010-09-29 118 views
3

我開發了一個需要從Java GUI應用程序調用的命令行實用程序。負責Java GUI的團隊希望將我的命令行應用程序綁定到GUI中的按鈕; Python應用程序是這樣的,當時我們沒有時間或興趣用Java重寫它。從Java運行Python命令行實用程序

我在Java中沒有任何經驗,所以我問你:

什麼是一個基於Java的GUI應用程序綁定一個基於命令行的Python應用程序的按鈕的最佳方式?

我非常關心異常管理(如何告訴Java Python失敗)。

謝謝。

回答

1

您應該能夠使用Runtime.exec()從Java執行衍生進程。 Here's some examples

確保您捕獲stdout和stderr(同時 - 請參閱this answer獲取更多詳細信息),以便您可以報告錯誤。您可以捕獲應用程序的退出代碼,因此請確保應用程序本身正確報告錯誤。錯誤代碼將是檢測錯誤(我懷疑)在解析輸出流時更可靠的方式。

+0

謝謝Brian。我同意 - 最好確保Python腳本返回退出代碼(整數)而不是消息。非常感謝。 – Escualo 2010-09-29 18:10:41

0

你認爲jython?你可以: 1)使用它來運行python腳本(允許它調用Java類) 2)將python編譯到類文件中,使它們可用於普通的Java代碼,而不會在運行時出現jython 我只使用它第一種模式,但我已經看到第二批文檔。

0

我同意phlip--你可以用Java創建一個腳本引擎,並用它來調用你的Python代碼。假如你的python代碼不使用任何異常的操作系統特定的庫調用或DLL,這應該可以正常工作。此鏈接:http://jythonpodcast.hostjava.net/jythonbook/chapter10.html應該爲您提供有關您所需的確切機制的更多信息。