首先在Perspective中加上
 
 
     
  1. IFolderLayout folderLayout = layout.createFolder("folder", IPageLayout.BOTTOM,0.70f, editorArea);   
  2. folderLayout.addView(IConsoleConstants.ID_CONSOLE_VIEW);   

IFolderLayout folderLayout = layout.createFolder("folder", IPageLayout.BOTTOM,0.70f, editorArea);
folderLayout.addView(IConsoleConstants.ID_CONSOLE_VIEW);

就可以显示Console了,然后在创建它的控制者:

 
   
  1. package com.hoperun.citools.console; 
  2.  
  3. import java.io.PrintStream; 
  4.  
  5. import org.eclipse.ui.console.ConsolePlugin; 
  6. import org.eclipse.ui.console.IConsole; 
  7. import org.eclipse.ui.console.IConsoleManager; 
  8. import org.eclipse.ui.console.MessageConsole; 
  9. import org.eclipse.ui.console.MessageConsoleStream; 
  10.  
  11. public class ConsoleFactory { 
  12.  
  13.     public static MessageConsole console = new MessageConsole( 
  14.             "Netunit Console"null); 
  15.  
  16.     public void openConsole() { 
  17.         showConsole(); 
  18.     } 
  19.  
  20.     public static void showConsole() { 
  21.         if (console != null) { 
  22.             IConsoleManager manager = ConsolePlugin.getDefault() 
  23.                     .getConsoleManager(); 
  24.             IConsole[] existing = manager.getConsoles(); 
  25.             boolean exists = false
  26.             for (int i = 0; i < existing.length; i++) { 
  27.                 if (console == existing[i]) 
  28.                     exists = true
  29.             } 
  30.             if (!exists) { 
  31.                 manager.addConsoles(new IConsole[] { console }); 
  32.             } 
  33.             manager.showConsoleView(console); 
  34.  
  35.             MessageConsoleStream stream = console.newMessageStream(); 
  36.             System.setOut(new PrintStream(stream)); 
  37.         } 
  38.     } 
  39.  
  40.     public static void closeConsole() { 
  41.         IConsoleManager manager = ConsolePlugin.getDefault() 
  42.                 .getConsoleManager(); 
  43.         if (console != null) { 
  44.             manager.removeConsoles(new IConsole[] { console }); 
  45.         } 
  46.     } 
  47.  
  48.     public static MessageConsole getConsole() { 
  49.         return console; 
  50.     } 

package com.netunit.workbench.sys;

import java.io.PrintStream;

import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.IConsoleManager;
import org.eclipse.ui.console.MessageConsole;
import org.eclipse.ui.console.MessageConsoleStream;

/**
 * Console Factory
 * 
 * @author 何明
 * 
 */
public class ConsoleFactory {
	public static MessageConsole console = new MessageConsole("Netunit Console",
			null);

	public void openConsole() {
		showConsole();
	}

	public static void showConsole() {
		if (console != null) {
			IConsoleManager manager = ConsolePlugin.getDefault()
					.getConsoleManager();
			IConsole[] existing = manager.getConsoles();
			boolean exists = false;
			for (int i = 0; i < existing.length; i++) {
				if (console == existing[i])
					exists = true;
			}
			if (!exists) {
				manager.addConsoles(new IConsole[] { console });
			}
			manager.showConsoleView(console);

			MessageConsoleStream stream = console.newMessageStream();
			System.setOut(new PrintStream(stream));
		}
	}

	public static void closeConsole() {
		IConsoleManager manager = ConsolePlugin.getDefault()
				.getConsoleManager();
		if (console != null) {
			manager.removeConsoles(new IConsole[] { console });
		}
	}

	public static MessageConsole getConsole() {
		return console;
	}
}


然后在调用的地方加上一下代码即可
 
 
   
  1. MessageConsoleStream  printer = ConsoleFactory.console.newMessageStream();   
  2. ConsoleFactory.showConsole();   
  3. printer.print("aaaaaaaaaa\n");   

MessageConsoleStream  printer =ConsoleFactory.console.newMessageStream();
		ConsoleFactory.showConsole();
		printer.print("aaaaaaaaaa\n");


不过这样就不符合规范了,最好的方法就是写个静态方法带String参数,传进去的参数就是你想要输出的东西,
不信就试一试,不过在写代码之前别忘了基本的,就是先得添加org.eclipse.ui.console扩展点,控制台就轻而易举的实现了,够简单吧

原文地址:http://358184482-qq-com.javaeye.com/blog/461886