当前位置: 首页 > 面试题库 >

访问JAR资源

林修真
2023-03-14
问题内容

我有一个jar包含要分发的资源(主要是缓存,日志记录等的配置)的文件。

我对这些资源的相对路径有疑问,所以我做了在另一个stackoverflow问题中发现的问题,该问题说这是有效的方法:

ClassInTheSamePackageOfTheResource.class.getResourceAsStream('resource.xml');

不幸的是,这不起作用。

有任何想法吗?谢谢!

PS:显然我不能使用绝对路径,如果可能,我想避免使用环境变量


问题答案:

确保资源文件夹在项目设置中列为源文件夹。另外,确保在构建jar时将资源文件夹设置为导出。

您可以将.zip扩展名添加到jar文件中,然后将其打开以确保包含资源并位于预期位置。

我总是这样使用绝对路径:

InputStream input = this.getClass().getResourceAsStream("/image.gif");

使用绝对路径时,“ /”是jar文件中的根文件夹,而不是主机的根文件夹。



 类似资料:
  • 问题内容: 我有一个带有工具栏的Java项目,该工具栏上带有图标。这些图标存储在名为resources /的文件夹中,因此路径可能是“ resources / icon1.png”。该文件夹位于我的src目录中,因此在编译后,该文件夹将被复制到bin / 我正在使用以下代码访问资源。 (imageName将为“ resources / icon1.png”等)。在Eclipse中运行时,效果很好。

  • 问题内容: 嗨,我已经将我的Java项目导出为可执行jar文件。在我的项目中,我正在访问包含一些数据的Excel文件。现在,当我尝试访问Excel文件时,我将无法访问它。 我的项目结构是: Java_Project_Folder -src_Folder -resources_Folder(包含Excel文件) 我正在像访问Excel文件 我尝试使用以下方式访问此文件: 但是我进入的是空异常。有什么

  • 但我进的是空异常。有什么问题,有人能帮忙吗?

  • 什么是ClassPath 简单说来ClassPath就是查找class文件的路径,在Tomcat等容器下,ClassPath一般是WEB-INF/classes,在普通java程序中,我们可以通过定义-cp或者-classpath参数来定义查找class文件的路径,这些路径就是ClassPath。 为了项目方便,我们定义的配置文件肯定不能使用绝对路径,所以需要使用相对路径,这时候最好的办法就是把配

  • ServletContext接口定义了三个方法来访问当前Web应用程序的资源文件,这三个方法如下: l getResourcePaths方法 该方法返回指定Web应用程序目录中的所有子目录和文件,这些返回的目录文件不包括嵌套目录和文件。这些返回的子目录和文件都封装在该方法返回的一个Set对象中。getResourcePaths方法的定义如下: public Set getResourcePaths