Écrit à l'Éclipse de la console

Mon plugin d'écrire à l'éclipse de la console pour objectif de test, j'ai simplifié mon code, de sorte que je n'ai que le suivant:

public void start(BundleContext context) throws Exception {
        super.start(context);
        plugin = this;
        System.out.println("Tecomp Plugin is running");

        MessageConsole myConsole = new MessageConsole("My Console", null);
        //myConsole.activate();
        ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[]{ myConsole });
        ConsolePlugin.getDefault().getConsoleManager().showConsoleView(myConsole);
        final MessageConsoleStream stream = myConsole.newMessageStream();
        stream.setActivateOnWrite(true);
        stream.println("Hi there!");
        stream.close();
    }

C'est un simple plugin, la méthode démarrer belogs à la classe étendant AbstractUIPlugin - il pas une application rcp.
Le Code fonctionne très bien à l'intérieur de l'exécution workbench - une fois le plugin installé, la sortie est perdu quelque part. Le reste du plugin fonctionne correctement.

Est là peut-être un problème avec le ConsolePlugin? Ou sont des cours d'eau traitée différemment dans l'exécution workbench et le développement workbench?

J'ai essayé les deux - un projet de long métrage et en copiant directement le plugin jar du répertoire eclipse - pour l'installation du plugin - même résultat pour les deux...

Toute aide est la bienvenue, parce que je suis struggeling avec ce problème pour un certain temps maintenant...

Ce Qui Concerne, Kathi

Edit:

il ne semble pas être un problème de la Console... j'ai donné de mon propre point de vue pour l'impression de la sortie, mais bien que declard dans le plugin.xml il n'est pas tenu après l'installation du plugin... voici ce que j'ai fait:
-exporter le plugin avec le ExportWizard dans un pot-archive
-copié cette archive dans /usr/share/eclipse/plugins
-redémarrage d'eclipse

ou avec un projet de long métrage:
exporté de la fonction-projet contenant mon plugin avec le ExportWizard
-suppression de la ci-dessus jar archive à partir de l'éclipse dir
-installé la fonctionnalité
-redémarrage d'eclipse

les deux n'a pas de mot - ai-je quelque chose de mal avec l'installation du plugin?
Le pot-archive est ok, j'ai vérifié, c'est la version la plus récente. Mais de toute façon, il semble que l'éclipse est toujours de travailler avec certains anciens plugin sans les modifications que j'ai apportées

ce qui concerne, Kathi

Edit:

J'ai mis en place le IStartup Interface de fin de l'étendue de l'org.eclipse.l'interface utilisateur.point de départ, mais rien n'a changé... je pense vraiment qu'elle a un problème d'installation d'une certaine manière. J'ai commenté une partie de la sortie, mais c'est toujours imprimé sur la console de débogage.
Est-il une sorte de plugin de cache dans eclipse? Alors que le nouveau code n'a pas à le lire?

Edit:

Merci pour les suggestions, mais à partir d'eclipse avec l'option-clean n'a pas aidé - je vais essayer d'installer le plugin dans un autre environnement la semaine prochaine, peut-être il ya quelque chose de mal avec le mien...

Edit:

le code dans la classe de l'appel de la compilier se présente comme suit:

private MessageConsole findConsole(String name){
ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager conMan = plugin.getConsoleManager();
IConsole[] existing = conMan.getConsoles();
for (int i = 0; i<existing.length; i++){
if (name.equals(existing[i].getName())){
return (MessageConsole)existing[i];
}
}
//no console found -> create new one
MessageConsole newConsole = new MessageConsole(name, null);
conMan.addConsoles(new IConsole[]{newConsole});
return newConsole;
}
public void run() {
MessageConsole console = findConsole("tecompConsole");
//display the tecomp Console
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
String id = IConsoleConstants.ID_CONSOLE_VIEW;
try {
IConsoleView view = (IConsoleView) page.showView(id);
view.display(console);
} catch (PartInitException e) {
e.printStackTrace();
}
MessageConsoleStream output = console.newMessageStream();
String tecompPath = TecompPlugin.getDefault().getPreferenceStore().getString(IEiffelConstants.TECOMP_PATH);
if (checkTecompPath(tecompPath)){
String line;
String[] cmd = {tecompPath, pathToAceFile};
try{
output.println("calling tecomp");
Process tecomp = Runtime.getRuntime().exec(cmd);
//capture stdout und stderr from tecomp
BufferedReader input = new BufferedReader(
new InputStreamReader(tecomp.getInputStream()));
BufferedReader err = new BufferedReader(
new InputStreamReader(tecomp.getErrorStream()));
while ((line = input.readLine()) != null ){
output.println(line);
}  
input.close();
while ((line = err.readLine()) != null){
output.println(line);
}
err.close();
output.close();
tecomp.waitFor();
//System.out.println(tecomp.exitValue());
}catch (Exception err){
err.printStackTrace();
}
} else {
try{
output.println("please specify a tecomp path");
output.close();
}catch (Exception err){}
}
}

mais le premier exemple de test devrait fonctionner, n'est-ce pas? J'ai créer un nouveau MessageConsoleStream et écrire manuellement. C'est exactement comme les exemples que j'ai trouvé.

Edit:

Le code n'est pas belog à un rcp de l'application - c'est juste un plugin, l'extension de l'ide eclipse avec le soutien de la eiffel langage de programmation. Donc je pense que votre suggestion ne fonctionne pas pour mon plugin - VonC, au moins, je ne sais pas où mettre votre code...
Mon premier exemple de code dans la question initiale est appelée à l'intérieur de la classe de Plugin extension AbstractUIPlugin au sein de la start(BundleContext contexte) de la méthode. Mon plugin en cours d'exécution, donc quelque part cette méthode est appelée. Et comme je l'ai mentionné - le plugin fonctionne très bien à l'intérieur de l'exécution workbench...

Je suis désolé si ce n'est pas le bon endroit pour une explication supplémentaire de ma question - mais il semblait être le seul endroit où le système me permet de poster quelques lignes. Commentaires pour vos réponses ne sont pas autorisés pour moi, car je viens de m'inscrire et pour qui je n'ai pas assez de points de réputation... alors, s'il vous plaît corrigez-moi, si je suis en utilisant le système de mal 🙂 thx

L'Éclipse de la console a une liste qui est affichée quand un petit triangle pointant vers le bas) en haut à gauche est cliqué. Est-ce que votre console y apparaître? Je crois qu'il devrait. Si elle est puis sélectionnez la console pour voir le contenu que vous vous connectez.
non, ma console ne s'affiche pas il y

OriginalL'auteur | 2009-04-06