J'ai un plugin Eclipse (A) qui dépend d'un autre plugin (B). Le plugin B est simplement un wrapper autour d'un jar, qui contient une DLL native, et effectue des fonctionnalités jni. Compte tenu de cette configuration, je le code suivant dans la méthode de démarrage de la classe Activator de A:Comment puis-je rediriger la sortie de la console JNI vers la vue Console Eclipse, lorsque le plugin Eclipse utilise JNI?
MessageConsole jniConsole = new MessageConsole("Opereffa Output", null);
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { jniConsole });
ConsolePlugin.getDefault().getConsoleManager().showConsoleView(jniConsole);
MessageConsoleStream stream = jniConsole.newMessageStream();
System.setOut(new PrintStream(stream));
System.setErr(new PrintStream(stream));
lorsque le plugin A effectue ses fonctionnalités, toute utilisation de System.out va en fait à la console au sein d'Eclipse. Mais le code natif utilisé par JNI écrit également dans le flux de sortie, que je ne peux pas saisir. Pendant le développement, la sortie de JNI est envoyée à la console de l'instance Eclipse qui a lancé l'instance en cours d'exécution, qui contient les plugins.
Alors, comment puis-je saisir la sortie JNI et afficher dans la console?
Quelle (s) fonction (s) consignent les messages dans le code natif? printf, fprintf, puts? ... Seriez-vous libre de réécrire le code, en changeant la fonction de journalisation? –
Depuis JNI est impliqué: Comment portable doit être une solution? Sur quelles plateformes devrait-il fonctionner au moins? –