簡體   English   中英

如何使用自定義啟動配置捕獲Eclipse插件的控制台輸出?

[英]How to capture console output of Eclipse plugin with custom Launch Configuration?

我正在編寫一個帶有自定義啟動配置的Eclipse插件,即LaunchConfigurationDelegate子類中的launch()方法。 這個方法本質上只是調用Runtime.exec() ,但是當我從launch()內部寫入System.out時,它會進入調試插件的Eclipse實例的控制台,而不是插件實例本身的控制台。 我已經分析了該方法的ILaunchConfigurationILaunch參數,但無法找到任何指定我可以寫入的輸出/錯誤流的地方。

正如教程中推薦的那樣,我有兩個獨立的插件一起運行; 一個處理UI東西( LaunchConfigurationTabLaunchConfigurationTabGroupLaunchShortcut ),另一個包含LaunchConfigurationDelegate本身。

我使用這段代碼在我的UI插件中創建了一個控制台,我可以在UI代碼中寫得很好。 但我無法弄清楚如何將我的非UI插件中生成的輸出定向到我的UI插件中創建的控制台。

我讀過這篇文章這一個 ,但他們沒有規定如何“得到阿霍德”,這是中產生的輸出的launch()擺在首位方法。

任何指針都會非常受歡迎,我被困住了!

好吧,我終於設法得到了如下工作:

在我的LaunchConfigurationDelegate我介紹了以下靜態方法:

public static void setConsole(PrintStream ps) {
    System.setOut(ps);
    System.setErr(ps);
}

然后在我的UI插件的PerspectiveFactory創建我的控制台時,我將其調用如下:

private void createConsole() {
    console = new MessageConsole("My Console", null);
    console.activate();
    ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[]{ console });
    MessageConsoleStream stream = console.newMessageStream();

    MyLaunchConfigurationDelegate.setConsole(new PrintStream(stream));
}

這是有效的,除非我每次關閉Eclipse並重新啟動它時控制台都會消失。 但是,當我重置我的視角時,控制台會再次出現。 顯然我需要在啟動時調用該代碼,而不是在PerspectiveFactory本身。

希望這可以幫助某人..如果有人對這最后一個問題(或者我的方法一般)有一些意見,請做評論!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM