Eclipse 插件开发 向Console控制台输出信息

我们在编写eclipse插件时,一般会通过

MessageDialog.openInformation(null, "Title", "It's just a test"); 弹出一个提示相关框,

有调试消息也会用System.out.println();打印出来。


但是弹出对话框在插件实际使用时并不方便,我们不能总是让用户关闭对话框

而System.out.println();打印的消息只能在调试时在调试窗口查看,不能打印消息。


所以我们必须要向插件运行的Workbench中实现Console信息的打印。


首先要做的,我们必须在配置中引入org.eclipse.ui.console的引用

plugin.xml -->Dependencies --> Required Plug-ins --> Add






然后通过代码实现打印方法

    MessageConsole console = null;
    MessageConsoleStream consoleStream = null;
    IConsoleManager consoleManager = null;
    final String CONSOLE_NAME = "Console";

    private void initConsole() {
    	// 新建一个MessageConsole,可以自定义Console的名称
    	console = new MessageConsole(CONSOLE_NAME, null);
    	
    	// 通过ConsolePlugin得到IConsoleManager,添加自定义的MessageConsole
    	consoleManager = ConsolePlugin.getDefault().getConsoleManager();
    	consoleManager.addConsoles(new IConsole[] { console });
    	
    	// 新建一个MessageConsoleStream, 作用是接收需要打印的消息
    	consoleStream = console.newMessageStream();
    }

    /**
     * 开启console, 打印相关消息
     * @param message 消息内容
     */
    public void printMessage(String message) {
        if (message != null) {
            if (console == null) {
                initConsole();
            }
            // 显示Console视图
            consoleManager.showConsoleView(console);
            // 打印消息
            consoleStream.print(message + "\n");
		    
        }
    }


今天突然想到一个问题,过来补充一下

其实eclipse默认自己是存在一个console的,之前的方法其实是新创建了一个名为“Console”的控制台

我们在ConsoleManager的getConsoles()方法下就可以查看当前管理存在的控制台

所以为了避免资源浪费,可以通过下面的方法调用默认的控制台

private void initConsole() {
	    consoleManager = ConsolePlugin.getDefault().getConsoleManager();
	    IConsole[] consoles = consoleManager.getConsoles();
	    if(consoles.length > 0){
	        console = (MessageConsole)consoles[0];
	    } else{
	        console = new MessageConsole(CONSOLE_NAME, null);
	        consoleManager.addConsoles(new IConsole[] { console });
	    }
	    consoleStream = console.newMessageStream();
}

即如果存在就直接使用,如果不存在再创建新的控制台

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值