我在OSGI包中使用Java和HelpGUI,并且使用的链接不起作用。当我在非OSGI Java项目中使用HelpGUI时,它们可以在相同的html文件上正常工作。是否有一些安全设置或特殊的路径我需要考虑?让我知道,我被卡住了。
答案 0 :(得分:2)
你应该看看HelpGui的源代码,我可以看到为什么它在OSGi中不起作用(它依赖于jar文件中通常具有的特定URL格式资源)。
如果查看net.sourceforge.helpgui.gui.HelpView页面,请参阅第222行:
else //It's perhaps a page on the help toppic
{
//Serach the page from
int ind = url.lastIndexOf('!');
url = url.substring(ind+1,url.length());
url = url.replaceFirst(MainFrame.helpPath+"/","");
updatePage(getLinkedPage(pageRoot.children(), url), true);
}
这在OSGi中不起作用,因为条目的URL格式确实不同。例如,在Equinox中,包URL看起来像:
bundleresource://2.fwk1657006569:1general/features.html
(其他实现可能不同,重点是,你不能依赖它)
在'普通java'中,URL如下所示:
jar:file:/home/demo-helpgui/nonosgi/lib/helpgui-1.1-demo.jar!/docs/help/general/features.html
它是可以修复的,它不应该太难,但你必须联系HelpGui作者或亲自弄脏你。
问候,弗兰克