2012-06-19 48 views
2

我正在製作一個eclipse插件,我想要運行系統命令,並將命令的輸出轉到eclipse控制檯。我知道如何通過http://wiki.eclipse.org/FAQ_How_do_I_write_to_the_console_from_a_plug-in%3Feclipse插件:在控制檯運行命令,獲取標準輸入

這個問題我不知道如何解決,是允許從控制檯交互輸入此命令。

實質上,我想啓動一個在控制檯中運行的命令。用戶可以使用此命令(通過stdin)進行交互。然後我想讓我的插件代碼在命令完成時(或用戶在控制檯中手動停止/終止命令)獲得回調。獲取完成的程序的返回代碼也很好。

爲簡單起見,我們以unix'passwd'命令爲例(這是我能想到的第一個通用cmd,它們都有輸出和提示輸入)。然而,我不需要隱藏stdin。

僅供參考,我試圖撥打的命令是CakePHP bake shell

回答

0

我假設你有自己的MessageConsole,就像常見問題一樣。那麼應該可以在循環中使用messageConsole.getInputStream().read()來獲得您的輸入(但我沒有測試過)。有關更多選項,另請參閱IOConsoleInputStream的文檔。

另一方面,我不知道你爲什麼要創建自己的插件來做到這一點。 Eclipse中的標準控制檯實現正是你想要的。您可以通過運行一個小型Java應用程序來查看該應用程序,您可以在其中使用該控制檯進行輸入和輸出。

+0

我是一個爪哇小老虎非常抱歉提前。這裏的想法是採取該輸入流,並以某種方式管回運行命令?有沒有辦法通過org.eclipse.ui.console傳遞一個命令到控制檯,它處理輸入/輸出到控制檯? 至於爲什麼:我正在將一些功能集成到我正在編寫的CakePHP插件中。想要做類似於Model> bake(生成所有代碼,關係等)的東西。我熟悉運行外部工具(並且已經使用之前的烘焙工具:http://rynop.com/setting-up-eclipse-36-for-cakephp-13-developm) – rynop

相關問題