Java 我能';t在我的OSGI包中加载HelpGUI

Java 我能';t在我的OSGI包中加载HelpGUI,java,resources,stream,osgi,bundle,Java,Resources,Stream,Osgi,Bundle,这应该很简单。HelpGUI是一个非常简单的库: 在一个不使用OSGI框架的测试应用程序中,我可以毫不费力地加载这个小库中包含的演示。当我尝试在OSGI包中执行此操作时,我无法打开InputStream。这一定是因为我没有正确地将资源包含到包中,但我不确定如何进行。我能够构造URL对象并获得文件的正确路径。我的包中的/docs/help/文件夹与src文件夹处于同一级别,我是否可以直接调用: MainFrame mainFrame = new MainFrame("/docs/help/", "

这应该很简单。HelpGUI是一个非常简单的库:

在一个不使用OSGI框架的测试应用程序中,我可以毫不费力地加载这个小库中包含的演示。当我尝试在OSGI包中执行此操作时,我无法打开InputStream。这一定是因为我没有正确地将资源包含到包中,但我不确定如何进行。我能够构造URL对象并获得文件的正确路径。我的包中的/docs/help/文件夹与src文件夹处于同一级别,我是否可以直接调用:

MainFrame mainFrame = new MainFrame("/docs/help/", "plastic");

它能用吗?为什么OSGI让这变得如此困难?有人可以尝试下载库并让演示在OSGI捆绑包中弹出帮助窗口吗?

我已经尝试过了,没有遇到任何问题,我已经用OSGI版本和非OSGI版本进行了git回购,并且都运行良好:

它们都有一个eclipse启动文件,您可以从run菜单运行它们

我需要做的唯一棘手的事情就是添加这个开关:--launcher.secondThread,但这只是MacOS上的Eclipse SWT/Swing问题,我不知道您使用的是什么平台

另外,可能有点棘手,Eclipse不会强迫您向javax.*包添加依赖项,这是您真正应该做的,否则独立的OSGi框架不会加载包,即使Eclipse本身也会加载

您可以使用PDE导出(export->Bundles and Fragments)导出捆绑包,我还将其(helpgui-osgi_1.0.0.201207310536.jar)包含在git repo中。例如,您可以将包含的包放入Felix的“bundle”文件夹中

再简单不过了;-)