【发布时间】:2012-06-18 03:36:48
【问题描述】:
所以,我正在开发一个 Java 应用程序,我想将资源打包到 jar 文件中,以使它们更便于移植。这些 jar 文件将与应用程序分开,并且仅包含资产(图像、声音、保存文件等)。
从像这样的 jar 文件中访问任意资源的最简单方法是什么?我环顾四周,但找不到任何简单的教程。我知道我可以使用 ClassLoader 从 Jar 文件中检索输入流,但是如何获得引用正确 Jar 的 ClassLoader?
另外,我如何以编程方式将一堆资源捆绑到这样的 jar 文件中?如果我能以我想要的方式让它工作,我想将它用于一堆东西,并希望能够动态创建任何需要的档案。
【问题讨论】:
-
“正确的罐子”?您将获得具有完全相同包装和名称的资源?
-
出于各种原因,我推荐
getResource("/path/to/the.resource")而不是getResourceAsStream。见info. page on embedded resources(我在其中列出了替代方案,没有解释)。 -
@DaveNewton - 不,当然不是,我只是在引用一个事实,即我想针对特定的外部 jar。
-
@AndrewThompson - 好的,我明白为什么这可能是个好主意。感谢您的提示。
-
@CodeBunny 为什么?如果资源具有唯一限定符,则无需指定 jar。
标签: java resources jar classloader embedded-resource