JavaHelp:从外部jar文件加载helpset

时间:2016-09-12 12:53:04

标签: jar external javahelp

我正在使用一个独立的java程序,该程序将javahelp系统用于帮助文件。该计划有一堆内置的模块'用户可以在运行时选择对数据执行各种分析。我添加了运行插入到插件文件夹中的插件模块的功能,以便其他开发人员可以创建自己的算法。

我开始使用plugins文件夹中的.class文件,以及javahelp .hs文件和支持文档(.xml,.html,.map等)。我能够从插件文件夹中读取.hs文件并与主程序帮助系统合并,没问题。

然后我将所有文件捆绑在一个jar中,因为这是我们如何设想大多数开发人员分发他们的插件。 .class文件仍然加载并运行,但现在我无法再加载.hs文件了。 HelpSet类需要一个带有.hs文件位置的URL。我是否要告诉它查看jar文件?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

万一有人遇到同样的问题,我的问题是我用来从jar文件中访问helpset文件的路径名的格式。格式(来自找到here的JavaHelp用户指南的第4.6.7节)是将URL形成为:

URL helpSetLoc = new URL("jar:file:" + File.separator + pluginList.get(i).getJarFile()+"!/"+pluginList.get(i).getHelpSetName());

我的getJarFile()方法返回了jar文件的名称(包括绝对路径)。我的getHelpSetName方法返回了包名称和帮助集名称,用正斜杠分隔,如myPlugin/pluginHelp.hs中所示。

我的问题是我在软件包名称和helpset文件名之间使用了File.separator,它在Windows中返回了一个反斜杠。我也尝试了一个双反斜杠,它做了同样的事情。我不得不使用正斜杠,否则HelpSet构造函数无法找到该文件。