1

我正在尝试将JavaHelp包含在我在 Eclipse 下开发的应用程序中。

我做了以下事情:

  1. 在我的项目工作区的子文件夹中下载并提取JavaHelp 库。
  2. 将以下库的 JAR 添加到我的项目类路径 ( Properties->Java Build Path->Libraries->Add External JARs) 中:

    jh.jar

    jhall.jar

    jhbasic.jar

    jsearch.jar

  3. 我尝试创建名为 help_folder 的文件夹 ( New->Folder) 和名为 help_source_folder 的源文件夹 ( New->Source Folder),并在其中放入一个名为 Master.hs 的示例文件(我从 JavaHelp 存档中获取)。

然后从我的应用程序内部,我做了以下事情:

try {
    ClassLoader loader = this.getClass().getClassLoader();
    URL url = HelpSet.findHelpSet(loader, "Master.hs");
    //alternatively : URL url = HelpSet.findHelpSet(loader, "help_folder/Master.hs");
    //alternatively: URL url = HelpSet.findHelpSet(loader, "help_source_folder/Master.hs");
    JHelp jhelp = new JHelp(new HelpSet(loader, url));
} catch (HelpSetException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

现在问题如下: 无法创建 HelpSet 对象,因为方法null返回了 URL findHelpSet()

我不知道如何解决这个问题。有人能把我引向正确的方向吗?

4

2 回答 2

1

Make sure the folder you create is inside your project's source folder (defaults to 'src'). If it's not then it won't be included in the output folder (defaults to 'bin') when it builds the project.

于 2011-11-14T03:05:39.503 回答
0

findHelpSet() 方法返回 null 的原因有两个:

  1. 它在您的类路径中找不到主帮助设置文件。当我使用 IDE 时,我经常遇到这种情况,因为它们会将所有类编译到某个工作目录中,并且经常“忘记”复制带有“未知”扩展名的文件,而hs是一个很可能是未知的扩展名,除非你添加它手动到您的 IDE。

  2. It could find it but it could not read it. This could be because of some security issues. Also an empty file is considered a file that could not be read from, which is a bug IMO, so make sure your Master file has some data in it.

于 2011-11-12T11:39:47.247 回答