jar中Java资源的上次修改时间

时间:2012-11-19 10:06:49

标签: java jar resources last-modified

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

url.openConnection().getLastModified()

它返回整个jar的最后修改时间(内部所有项目都相同),但我需要修改特定文件的时间。信息在那里(当我打开罐子作为拉链时,我看到特定文件的正确时间)。有人知道如何访问它吗?

由于

2 个答案:

答案 0 :(得分:1)

您可能需要使用JarInputStream查询JAR内容。
你将迭代这些条目,得到ZipEntry的对象 ZipEntry的一种访问方法是getTime
我相信这是你正在寻找的方法。

答案 1 :(得分:0)

尝试类似:

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

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

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

图书馆是开源的。

的Maven:

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