2

我正在制作一个 eclipse 插件,我想在其中运行系统命令,并将命令的输出转到 eclipse 控制台。我知道如何通过http://wiki.eclipse.org/FAQ_How_do_I_write_to_the_console_from_a_plug-in%3F做到这一点

我不知道如何解决的问题是允许从控制台对此命令进行交互式输入。

本质上,我想启动一个在控制台中运行的命令。用户可以与此命令交互(通过标准输入)。然后,我希望我的插件代码在命令完成时获得回调(或者用户在控制台中手动停止/终止了命令)。获取已完成程序的返回码也很好。

为简单起见,让我们使用 unix 'passwd' 命令作为示例(这是我能想到的第一个常见的 cmd,它既有输出又有输入提示)。但是,我不需要隐藏标准输入。

作为参考,我试图调用的命令是CakePHP bake shell

4

1 回答 1

0

我假设你有一个 MessageConsole,就像在 FAQ 中一样。然后应该可以messageConsole.getInputStream().read()在循环中使用来获取您的输入(但我尚未对此进行测试)。另请参阅IOConsoleInputStream的文档以获取更多选项。

另一方面,我不确定您为什么要创建自己的插件来做到这一点。Eclipse 中的标准控制台实现正是您想要的。您可以通过运行一个小型 Java 应用程序来看到这一点,您也可以在其中使用该控制台进行输入和输出。

于 2012-06-19T04:47:52.687 回答