0

我在我的 OSGI 包中使用 Java 和 HelpGUI,并且使用的链接不起作用。当我在非 OSGI Java 项目中使用 HelpGUI 时,它们在相同的 html 文件上工作得很好。是否有一些安全设置或一些特殊的路径需要考虑?让我知道,我被卡住了。

4

1 回答 1

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 作者或自己动手。

问候,弗兰克

于 2012-08-01T15:38:43.073 回答