findHelpSet在使用Eclipse在我的应用程序中集成JavaHelp系统时返回一个空URL

时间:2011-10-23 17:26:52

标签: java eclipse classpath javahelp

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

我做了以下事情:

  1. 在我的项目工作区的子文件夹中下载并解压缩JavaHelp library
  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档案。)

  4. 然后从我的应用程序中我做了以下内容:

    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方法返回了findHelpSet() URL。

    我不知道如何解决这个问题。有人能让我朝着正确的方向前进吗?

2 个答案:

答案 0 :(得分:1)

确保您创建的文件夹位于项目的源文件夹中(默认为'src')。如果不是那么它在构建项目时不会包含在输出文件夹中(默认为'bin')。

答案 1 :(得分:0)

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

  1. 在类路径中找不到主帮助集文件。当我使用IDE时,它发生在我身上,因为他们将所有类编译成一些工作目录,并且经常“忘记”使用“未知”扩展名复制文件, hs 是一个扩展名,除非您手动将其添加到IDE中,否则很可能是未知的。

  2. 它可以找到它,但它无法读取它。这可能是因为一些安全问题。此外,文件被视为无法读取的文件,这是一个错误的IMO,因此请确保您的主文件中包含一些数据。