【问题标题】:Get the directory inside the jar获取jar里面的目录
【发布时间】: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


    【解决方案1】:

    您需要使用例如java.lang.Class.getResourceAsStream() 来访问该文件。这将在 jar 内或文件系统上工作。

    【讨论】:

    • 对,但是我怎样才能得到父目录,因为这让我得到了类的目录?
    • 给你传递的字符串加上前缀/,以引用jar的根目录。
    • @Martin,is jar 文件中没有目录——文件只有与它们关联的路径名——所以请求访问权限没有意义它。如果不使用ZipInputStream 之类的东西打开它,就无法列出 jar 文件中的文件。但请注意,根据您传递的参数(阅读 Javadoc),getResource() 系列方法可以在类文件“旁边”找到文件,或者在类路径条目的根目录下,或者实际上在类路径中的任何位置,在罐子里或外面。
    【解决方案2】:

    您有 2 个主要选项。

    1. this.getClass().getClassLoader().getResourceAsStream("some/pkg/resource.properties");

    2. this.getClass().getResourceAsStream.("/some/pkg/resource.properties");

    我最近刚刚在上面发布了这篇更完整的帖子,getResourceAsStream returns null

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-22
      • 2016-01-03
      • 2010-10-03
      • 2014-01-03
      • 2018-03-05
      • 1970-01-01
      • 2012-04-09
      • 2013-03-27
      相关资源
      最近更新 更多