Eclipse控制台视图的输出不一致
我正在调用一个编译器命令,但是编译器消息在Eclipse控制台视图中的显示并不一致 我的启动方法的实现方式与 ; 我使用命令行字符串设置调用DebugPlugin.exec方法。然而,与上述问题的作者不同,我的Eclipse控制台的输出非常不一致。T 当我调用该命令时,控制台中没有任何活动,此时控制台继续显示“无需显示的控制台”。但在多次调用命令并从下拉菜单激活不同的控制台后,控制台偶尔会变为活动状态,并显示消息 我对eclipse的行为感到困惑,不知道如何解决这个问题。如有任何意见和/或建议,将不胜感激 谢谢 - 编辑Eclipse控制台视图的输出不一致,eclipse,eclipse-plugin,Eclipse,Eclipse Plugin,我正在调用一个编译器命令,但是编译器消息在Eclipse控制台视图中的显示并不一致 我的启动方法的实现方式与 ; 我使用命令行字符串设置调用DebugPlugin.exec方法。然而,与上述问题的作者不同,我的Eclipse控制台的输出非常不一致。T 当我调用该命令时,控制台中没有任何活动,此时控制台继续显示“无需显示的控制台”。但在多次调用命令并从下拉菜单激活不同的控制台后,控制台偶尔会变为活动状态,并显示消息 我对eclipse的行为感到困惑,不知道如何解决这个问题。如有任何意见和/或建议,
要添加更多信息,可以使用外部工具运行外部流程。我在“外部工具配置”窗口的“位置”字段中添加了编译器进程c:\path\myprocess.exe,并在“参数”字段中添加了要编译的文件。当我运行它时,所有输出都显示良好。当我通过LaunchConfigurationDelegate类以编程方式运行它时,它不会显示。也许可以尝试以编程方式将控制台置于前端,看看它是否有帮助:
* Bring the console to front.
*/
public static void showConsole() {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
IWorkbenchWindow window = CUIPlugin.getActiveWorkbenchWindow();
if (window != null) {
IWorkbenchPage page = window.getActivePage();
if (page != null) {
IViewPart consoleView =
page.findView(IConsoleConstants.ID_CONSOLE_VIEW);
if (consoleView == null) {
IWorkbenchPart activePart = page.getActivePart();
try {
consoleView =
page.showView(IConsoleConstants.ID_CONSOLE_VIEW);
} catch (PartInitException pie) {
CUIPlugin.log(pie);
}
// restore focus stolen by the creation of the
// console
page.activate(activePart);
} else {
boolean bringToTop = true;
if (bringToTop) {
page.bringToTop(consoleView);
}
}
}
}
}
});
}
终于成功了。我所做的主要更改是让我的MyLaunchConfigurationDelegate扩展LaunchConfigurationDelegate,而不仅仅是实现ILaunchConfigurationDelegate。通过调试器观察时,启动方法的代码路径与外部进程的代码路径类似,在MyLaunchConfigurationDelegate扩展LaunchConfigurationDelegate时,外部进程通过外部工具启动 我想这是因为我缺少信息,但我不确定代码的哪一部分更重要 另一段被删除的代码是:
IProcess dbgProcess = DebugPlugin.newProcess(launch, compilerProcess, "XVR Compiler", processAttributes);
...
launch.removeProcess(dbgProcess);
我在尝试使用不同的方法调试此问题时添加了它,实际上,在调试进程有机会向控制台显示输出之前删除它会导致更多问题。谢谢。我尝试了一下,但findView返回的控制台是consoleView,此时没有要显示的控制台。标题也许,输出甚至没有正确地定向到控制台?或者,没有创建控制台?如果我创建自己的控制台页面,如何将我的输出从DebugPlugin.exec定向到控制台?对此的另一个评论是,外部工具和我的代码之间唯一的主要区别是,外部工具运行的实例在单独的工作线程上运行,而我的代码在主线程中运行。