Wie kann ich die Ausgabe der JNI-Konsole in die Eclipse-Konsolenansicht umleiten, wenn das Eclipse-Plugin JNI verwendet?

Ich habe ein Eclipse-Plugin (A), das von einem anderen Plugin (B) abhängig ist. Plugin B ist einfach ein Wrapper um eine JAR-Datei, die eine native DLL enthält und JNI-Funktionen ausführt. Bei diesem Setup habe ich den folgenden Code in der Startmethode der Activator-Klasse von A:

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));

Wenn Plugin A seine Funktionalität ausführt, wird jede Verwendung von System.out tatsächlich an die Konsole in Eclipse weitergeleitet. Von JNI verwendeter nativer Code schreibt jedoch auch in den Ausgabestream, den ich nicht erfassen kann. Während der Entwicklung wird die Ausgabe von JNI an die Konsole der Eclipse-Instanz gesendet, die die ausgeführte Instanz gestartet hat, die die Plugins enthält.

Wie greife ich auf die JNI-Ausgabe zu und zeige sie in der Konsole an?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage