从Web应用程序中的jar加载资源

时间:2012-03-27 22:48:38

标签: java resources jar classloader

我用答案阅读了所有问题但仍然不适用于我。

在我的网络应用程序中,我有一个包含少量图像和xmls的jar。这些是jar中本身所必需的。所以我修改了所需的行,如下所示:

我改变了jar中的类来引用资源(它们存在于jar本身中):

Thread.currentThread().getContextClassLoader().getResource(path) // returns null

我之前也曾尝试过:

MyClassName.class.getResource(path) // null again

我读了很多关于这一点,并且知道后面的代码行将能够获取资源,但不幸的是它对我来说都不适用......我错过了什么?

注意:在Tomcat7上运行,因为我在Vista上运行,所以我将'path'值设为'\ myFolder \ images \'

由于

1 个答案:

答案 0 :(得分:2)

从jar中嵌入资源时必须注意的几点,嵌入在Web应用程序中

  1. 加载文件与加载资源不同。当我们使用File.seperator时,它通常是w.r.t文件和绝对路径。建议不要加载资源。
  2. 从jar中加载资源时,请确保您没有使用File.seperator并使用正常的'/',因为它是相对路径w.r.t jar。
  3. 如果您正在从jar中的xml读取属性...并且该属性引用另一个位置,请确保使用“/”斜杠读取它。同样,File.seperator无法用于加载资源,因为它会将'/'替换为'\'(Windows系统)
  4. 最后,在jar代码中加载资源时,请使用以下行

    MyCurrentClass.class.getResource(路径)

  5. 希望它可以帮助人们在Web应用程序的jar中处理xmls