Category Archives: eclispe

Write a console plug-in for eclipse3.5

我第一个JAVA程序终于完成了,是一个eclipse的控制台插件。本插件的目的是,实现一个通用的控制台,当启动一个进程时,将进程的输入输出显示在Console View中。

Console的使用,通过接口来完成。主要的方法是open和close。当然可以继续增加其它一些方法,如改变尺寸等

public interface IMyConsole {
    void open();
    void close();
    ...
}

希望使用时能够尽量简便,例如希望在eclipse中开启一个cmd控制台:

    IMyConsole console;
    ...
    ProcessBuilder builder = new ProcessBuilder("cmd.exe");
    try {
        Process proc = builder.start();
        console = new ConsoleFactory("Windows cmd", null,
            proc.getOutputStream(),
            proc.getInputStream(),
            proc.getErrorStream());
        console.open();
    } catch (IOException e) {
        e.printStackTrace();
    }
    ...

实例化console时候,需要指明控制台的stdin,stdout和stderr。这样就可以灵活用于各种情况,如执行一个进程、socket流、文件流等。同时,也可以指定只使用stdout和stderr,作为纯粹的输出控制台。当然,如果将这些用法再封装一层就好了。实例创建出来后,调用open()方法即可打开控制台。
类的框架如下:

ConsolePlugin

(研究了几个小时UML,结果发现这东西不是一会就能玩明白的,干脆用土办法画图了) Continue reading

Posted in eclispe | Tagged , , , | Leave a comment