java - 我的 html 超链接在我的 OSGI 包中不起作用

标签 java html jar osgi html-helper

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

最佳答案

你应该看看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 中, bundle 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 作者或亲自动手。

问候,弗兰克

关于java - 我的 html 超链接在我的 OSGI 包中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11761383/

相关文章:

java - 如果未完成客户确认会怎样?

java - 在java spring mvc中发送电子邮件

javascript - 网页上的注释

javascript - 使用 WhatsApp HTML 链接分享图片和网址

java - 添加的外部 jar 在谷歌应用引擎中不起作用

java - 无法实例化驱动程序类 "com.mysql.cj.jdbc.Driver": when deploying war file in jboss

java - 在 Java 中使用枚举来专门化模板

html - 字体不适用于所有浏览器

java - 从 Matlab 创建的 jar 文件返回值

java - ISafeRunnable 在哪里?