【问题标题】:How A Bundle can access OSGi output stream?A Bundle 如何访问 OSGi 输出流?
【发布时间】:2011-10-11 15:56:14
【问题描述】:

捆绑包有什么方法可以在 OSGi 输出流中打印字符串? 我的意思是像System.out.println("String");。而不是这个,我希望包在该流中打印它的字符串。

    public void start(BundleContext bundleContext) throws Exception {
    Activator.context = bundleContext;
    System.out.println("Hello World!"); // I want to print this string in osgi console.
}

你看,如果我运行 OSGi 框架,它会在 Java 控制台中打印其对命令的响应,System.out 也会在其中打印。

但我的问题是,我在 JTextArea 中打印它的输出,所以我希望捆绑包也能够在那里打印(在 OSGi 控制台输出流中打印它的字符串)。在这种情况下,我需要一种访问 OSGi 输出流的方法。

【问题讨论】:

    标签: osgi bundle


    【解决方案1】:

    如果我理解正确,您的 JTextArea 可用作控制台或控制台输出的视图。所以我建议只在那个 JTextArea 中显示 System.out 流。这是实现此目的的示例:http://unserializableone.blogspot.com/2009/01/redirecting-systemout-and-systemerr-to.html

    【讨论】:

    • 是的,你理解得很好。 :) 这是一个很好的建议,但它有一个小缺陷。它也会打印异常!
    【解决方案2】:

    我想我不明白这个问题。这将写入指向 System.out 的任何位置。如果您从命令行启动 OSGi 框架,则应该写入终端会话。

    【讨论】:

    • 不幸的是,要弄清楚我的意思非常复杂!你看,如果我运行 OSGi 框架,它会在 Java 控制台中打印它对命令的响应,System.out 也会在其中打印。但我的问题是,我在 JTextArea 中打印它的输出,所以我希望捆绑包也能够在那里打印。
    猜你喜欢
    • 2014-04-27
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 2011-10-06
    相关资源
    最近更新 更多