2012-05-09 44 views
19

He buscado por todas partes, pero no he encontrado algo que funcione ... ¡¡¡TIENE QUE haber una manera !!! Entonces, lo que necesito es un código que borre la consola en Eclipse (lo deja en blanco). Y NO, ¡no imprime 50 líneas en blanco, LIMPIÁNDOLO!Cómo borrar la consola en Java - Eclipse SDK

encontré esto:

Import import java.io.Console; 

public void ClearConsole() { 
      Console console = System.console();   
      if (console == null) 
        System.out.println("Couldn't get Console object !"); 
      console.clear(); 
    } 

pero me da un error: "El método clear() no está definida para la consola de tipo"

+0

https://bugs.eclipse.org/bugs/show_bug.cgi?id=122429 –

+1

Lo sentimos, pero el método clear() no está definido para java.io.Console http://docs.oracle.com/javase /7/docs/api/java/io/Console.html – lfergon

Respuesta

9

En la herramienta Eclipse se puede borrar el panel de la consola por haciendo clic derecho + claro pero no en Java.

La consola es una herramienta de registro, no se puede borrar para la seguridad de la administración.

+0

El OP está buscando una forma de hacerlo mediante programación. También puede hacer clic en la pequeña cruz gris en la esquina superior derecha de la consola de Eclipse para borrarla :) – Jerome

+1

@Jerome Como OP le contó acerca de Eclipse le dio la solución más simple. –

8

puedo llegar tarde con mi respuesta, pero aquí es lo que he conseguido hacer (y que trabajó para mí):

creé mi consola basada en este tutorial http://wiki.eclipse.org/FAQ_How_do_I_write_to_the_console_from_a_plug-in%3F, y modificar el método findConsole para parecerse esto:

private MessageConsole findConsole(String name) { 

     ConsolePlugin plugin = ConsolePlugin.getDefault(); 
     IConsoleManager conMan = plugin.getConsoleManager(); 

     IConsole[] existing = conMan.getConsoles(); 
     //if console exists, clear it 
     for (int i = 0; i < existing.length; i++) 
      if (name.equals(existing[i].getName())){ 
       ((MessageConsole) existing[i]).clearConsole(); //this is the important part 
       return myConsole; 
      } 

     myConsole = new MessageConsole(name, null); 
     conMan.addConsoles(new IConsole[]{myConsole}); 
     return myConsole; 
    } 

Así, en el oyente de algún otro botón/Control/lo que sea, tengo:

myConsole = findConsole(ASIO_RECORD_OUTPUT); 
myConsoleOut = myConsole.newMessageStream(); 

y siempre que ese pedazo de código es ejecutado , mi consola está limpia. Espero eso ayude.

corregir: ¡Olvidé mencionarlo, hice esto al crear una aplicación RCP!

Cuestiones relacionadas