【问题标题】:Regarding Help File in JAVA关于 JAVA 中的帮助文件
【发布时间】:2010-08-27 15:14:26
【问题描述】:

我是帮助在 java 中创建文件的新手。我已经使用 3rd 方工具创建了一个帮助文件“sample.chm”,将其添加到包名称为“help”的 java 程序中,并使用运行时类调用并构建 jar。当我运行 jar 文件时,它给了我一个“找不到文件,空指针异常”的错误。我已经给出了一个相对路径来识别像“../help/sample.chm”这样的文件,但它仍然不起作用,我尝试使用各种类来确定路径。但还是同样的错误。

请求您帮助我修复它。

jar 可以放在不同的系统中,打开这个帮助文件应该没有任何问题。

希望我的解释足以让您找出问题所在。

问候,

陈都

【问题讨论】:

    标签: java


    【解决方案1】:

    如果您在 jar 中有一个文件,您将无法像往常一样访问它。你可以这样访问它:

    URL helpFile=Thread.currentThread().getContextClassLoader().getResource("help/sample.chm");
    

    上面使用的方法(getResource)会返回一个URL;如果你愿意,你也可以使用 InputStream 来获取它,也可以使用 getResourceAsStream 来代替。

    【讨论】:

    • 你可以使用Thread.currentTread().getContexClassLoader()而不是this.getClass().getClassLoader()
    • 嗨,李,感谢您的回复。我使用了上面提到的类,但问题是 URL 类是指使用从驱动器名称/文件夹名称/.. 等开始的绝对路径的帮助文件。所以当我在另一个系统中运行它时,它会检查帮助的绝对路径以上述格式指定的文件,并且此路径将不再存在于该系统中,并且由于该 jar 文件引发了该文件未找到或空指针的异常。那么您能否提供另一种方法。
    【解决方案2】:

    除非出现更好的解决方案,否则至少是一种解决方法。使用this.getClass().getClassLoader().getResource 方式获取jar 内帮助文件的输入流。

    将字节复制到目标系统临时文件夹中的新帮助文件,并将提取的文件与外部帮助文件查看器一起使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多