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

findHelpSet在使用Eclipse将JavaHelp系统集成到我的应用程序中时返回空URL,java,eclipse,classpath,javahelp,Java,Eclipse,Classpath,Javahelp,我试图在Eclipse下开发的应用程序中包含这些内容 我做了以下几件事: 在我的项目工作区的子文件夹中下载并解压缩 将以下库的JAR添加到我的项目类路径(Properties->Java构建路径->库->添加外部JAR): jh.jar jhall.jar jhbasic.jar jsearch.jar 我试图创建名为help\u folder的文件夹(New->folder)和名为help\u Source\u folder的源文件夹(New->Source folder),并在其中放入一个

我试图在Eclipse下开发的应用程序中包含这些内容

我做了以下几件事:

  • 在我的项目工作区的子文件夹中下载并解压缩
  • 将以下库的JAR添加到我的项目类路径(
    Properties->Java构建路径->库->添加外部JAR
    ):

    jh.jar

    jhall.jar

    jhbasic.jar

    jsearch.jar

  • 我试图创建名为help\u folder的文件夹(
    New->folder
    )和名为help\u Source\u 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对象,因为
    findHelpSet()
    方法返回了
    null
    URL


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

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

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

  • 它可以找到它,但它无法阅读它。这可能是因为一些安全问题。另外,空的文件被认为是无法读取的文件,这在我看来是一个错误,因此请确保主文件中包含一些数据


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

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

  • 它可以找到它,但它无法阅读它。这可能是因为一些安全问题。另外,空的文件被认为是无法读取的文件,这在我看来是一个错误,因此请确保主文件中包含一些数据


  • 确保创建的文件夹位于项目的源文件夹内(默认为“src”)。如果不是,则在生成项目时,它不会包含在输出文件夹中(默认为“bin”)。

    确保您创建的文件夹位于项目的源文件夹中(默认为“src”)。如果不是,则在生成项目时,它不会包含在输出文件夹中(默认为“bin”。

    1)“hs是一个很可能未知的扩展,除非您将其添加到IDE中。”。谢谢你的回答。您知道如何向Eclipse添加扩展吗?2) 不是这样。这是一个常规的、可访问的文件。如果我用new File()打开它,它是存在的。@Heisenbug实际上我刚刚检查了最新的Eclipse,它不需要让任何扩展知道它,任何文件都应该可以被编译的Java类访问…1)“hs是一个很可能未知的扩展,除非你将它添加到IDE中。”。谢谢你的回答。您知道如何向Eclipse添加扩展吗?2) 不是这样。这是一个常规的、可访问的文件。如果我用new File()打开它,它就存在了。@Heisenbug实际上我只是检查了最新的Eclipse,它不需要让任何扩展知道它,任何文件都应该可以被编译的Java类访问。。。