У меня есть плагин Eclipse (A), который зависит от другого плагина (B). Плагин B - это просто оболочка для jar, которая содержит нативный dll и выполняет функции jni.
Учитывая эту настройку, у меня есть следующий код в методе запуска класса A Activator:
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));
Когда плагин A выполняет свои функции, любое использование System.out фактически идет на консоль в Eclipse. Но нативный код, используемый JNI, также записывает в выходной поток, который я не могу получить.
Во время разработки выходные данные JNI поступают в консоль экземпляра Eclipse, который запустил запущенный экземпляр, содержащий плагины.
Так как мне получить вывод JNI и отобразить в консоли?