【问题标题】:Last modification time of Java resource within a jarjar中Java资源的最后修改时间
【发布时间】:2012-11-07 05:47:47
【问题描述】:

我需要获取 java 资源的最后修改时间。当我使用

url.openConnection().getLastModified()

它返回整个 jar 的最后修改时间(对于里面的所有项目都相同),但我需要特定文件的修改时间。信息就在那里(当我以 zip 格式打开 jar 时,我会在特定文件中看到正确的时间)。有人知道如何访问它吗?

谢谢

【问题讨论】:

标签: java jar resources last-modified


【解决方案1】:

您可能需要使用 JarInputStream 查询 JAR 内容。
您将遍历条目,并获取 ZipEntry 的对象。
ZipEntry 的访问器方法之一是getTime
我相信这就是您正在寻找的方法。

【讨论】:

    【解决方案2】:

    尝试类似:

    try (FileSystems jarFS = FileSystems.newFileSystem(URI.create("jar:" + jarURI), Collections.<String, Object>emptyMap())){
        Path resourcePath = jarFS.getPath(resourcePathString); 
        FileTime fileTime = Files.getLastModifiedTime(resourcePath);
    }
    

    我还编写了一些使用 NIO 文件 API 处理 Jar 文件的 soem 实用程序方法:

    http://softsmithy.sourceforge.net/lib/0.2/docs/api/softsmithy-lib-core/org/softsmithy/lib/nio/file/JarFiles.html

    该库是开源的。

    马文:

    <dependency>  
        <groupId>org.softsmithy.lib</groupId>  
        <artifactId>softsmithy-lib-core</artifactId>  
        <version>0.2</version>   
    </dependency> 
    

    【讨论】:

      猜你喜欢
      • 2011-01-04
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 2016-02-16
      • 1970-01-01
      • 2023-04-03
      • 2017-01-20
      相关资源
      最近更新 更多