我正在创建一个eclipse插件,我想运行一个系统命令,并将命令的输出转到eclipse控制台。我知道如何通过http://wiki.eclipse.org/FAQ_How_do_I_write_to_the_console_from_a_plug-in%3F
执行此操作我不知道如何解决的问题是允许来自控制台的交互式输入命令。
本质上,我想启动一个在控制台中运行的命令。用户可以与此命令交互(通过stdin)。然后我希望我的插件代码在命令完成时获得回调(或者用户在控制台中手动停止/终止了命令)。获取已完成程序的返回代码也很不错。
为简单起见,我们使用unix'passwd'命令作为示例(这是我能想到的第一个常见的cmd,它既有输出又提示输入)。但是我不需要隐藏标准输入。
作为参考,我试图调用的命令是CakePHP bake shell。
答案 0 :(得分:0)
我认为你有自己的MessageConsole,就像常见问题解答一样。然后应该可以在循环中使用messageConsole.getInputStream().read()
来获取您的输入(但我没有对此进行测试)。有关更多选项,另请参阅IOConsoleInputStream的文档。
另一方面,我不确定你为什么要创建自己的插件来做到这一点。 Eclipse中的标准控制台实现完全符合您的要求。您可以通过运行一个小型Java应用程序来查看,您也可以使用该控制台进行输入和输出。