【发布时间】:2013-05-10 13:35:35
【问题描述】:
如何获取jar里面的目录?
假设我有一个名为 foo.jar 的 jar,如何让 jar 能够访问像 foo.jar!/text.txt 这样的文件,而类像 foo.jar!/randomPackage/Main.class?
我仍然可以在 Eclipse 中执行此操作,但是当我将程序导出到 jar 中时,它就不起作用了。
【问题讨论】:
标签: java file jar embedded-resource
如何获取jar里面的目录?
假设我有一个名为 foo.jar 的 jar,如何让 jar 能够访问像 foo.jar!/text.txt 这样的文件,而类像 foo.jar!/randomPackage/Main.class?
我仍然可以在 Eclipse 中执行此操作,但是当我将程序导出到 jar 中时,它就不起作用了。
【问题讨论】:
标签: java file jar embedded-resource
您需要使用例如java.lang.Class.getResourceAsStream() 来访问该文件。这将在 jar 内或文件系统上工作。
【讨论】:
/,以引用jar的根目录。
ZipInputStream 之类的东西打开它,就无法列出 jar 文件中的文件。但请注意,根据您传递的参数(阅读 Javadoc),getResource() 系列方法可以在类文件“旁边”找到文件,或者在类路径条目的根目录下,或者实际上在类路径中的任何位置,在罐子里或外面。
您有 2 个主要选项。
this.getClass().getClassLoader().getResourceAsStream("some/pkg/resource.properties");
this.getClass().getResourceAsStream.("/some/pkg/resource.properties");
我最近刚刚在上面发布了这篇更完整的帖子,getResourceAsStream returns null
【讨论】: