如何使用Java的Class.getResourceAsStream()方法访问嵌套在Jar包中的默认资源文件?

2026-05-06 16:190阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计703个文字,预计阅读时间需要3分钟。

如何使用Java的Class.getResourceAsStream()方法访问嵌套在Jar包中的默认资源文件?

相关专题

在 java 中,class.getresourceasstream() 是读取 jar 包内资源文件最常用、最可靠的方式。关键在于路径写法要符合类加载器的查找规则——它基于类的包结构和类路径(classpath)进行解析,且对 jar 包完全透明。

路径必须以斜杠开头(绝对路径)或不加斜杠(相对路径)

如果资源文件与当前类在同一包下,可直接用不带斜杠的名称;若在根目录(即 META-INF/ 同级),必须以 / 开头。例如:

  • MyClass.class.getResourceAsStream("config.properties") → 查找同包下的 config.properties
  • MyClass.class.getResourceAsStream("/images/logo.png") → 查找 Jar 根目录下的 images/logo.png
  • MyClass.class.getResourceAsStream("data/data.json") → 查找同包下子目录 data/data.json(注意不是 ./data/...

路径中的分隔符必须是正斜杠(/),不能用反斜杠()

即使在 Windows 系统中,Jar 内部资源路径也统一使用 /

阅读全文
标签:JavaStream

本文共计703个文字,预计阅读时间需要3分钟。

如何使用Java的Class.getResourceAsStream()方法访问嵌套在Jar包中的默认资源文件?

相关专题

在 java 中,class.getresourceasstream() 是读取 jar 包内资源文件最常用、最可靠的方式。关键在于路径写法要符合类加载器的查找规则——它基于类的包结构和类路径(classpath)进行解析,且对 jar 包完全透明。

路径必须以斜杠开头(绝对路径)或不加斜杠(相对路径)

如果资源文件与当前类在同一包下,可直接用不带斜杠的名称;若在根目录(即 META-INF/ 同级),必须以 / 开头。例如:

  • MyClass.class.getResourceAsStream("config.properties") → 查找同包下的 config.properties
  • MyClass.class.getResourceAsStream("/images/logo.png") → 查找 Jar 根目录下的 images/logo.png
  • MyClass.class.getResourceAsStream("data/data.json") → 查找同包下子目录 data/data.json(注意不是 ./data/...

路径中的分隔符必须是正斜杠(/),不能用反斜杠()

即使在 Windows 系统中,Jar 内部资源路径也统一使用 /

阅读全文
标签:JavaStream