2012-11-19 4 views
3

Java 자원의 최종 수정 시간이 필요합니다. 내가jar 내의 Java 자원의 최종 수정 시간

url.openConnection().getLastModified() 

를 사용하는 경우는 (모든 항목 내부에 대한 동일) 전체 단지의 최종 수정 시간을 반환하지만 나는 특정 파일의 수정 시간이 필요합니다. 정보가 있습니다 (병을 jip으로 열면 특정 파일에서 정확한 시간을 보게됩니다). 누군가 그것을 액세스하는 방법을 알고 있습니까?

감사

+1

의 중복 가능성 [자바 : 압축 파일을 수정 한 날짜를 유지 (http://stackoverflow.com/questions/10983301/java-maintaining-zipped-files-modified-date) –

+0

[이것을 시험해보고 그것이 효과가 있는지보십시오. [1] [1] : http://stackoverflow.com/questions/1429172/how-do-i-list-the-files-inside-a-jar-file –

답변

1

당신은 아마 JarInputStream를 사용하여 JAR의 콘텐츠를 조회 할 필요가있다.
항목을 반복하여 ZipEntry의 개체를 가져옵니다.
ZipEntry의 접근 자 메서드 중 하나는 getTime입니다.
나는 이것이 당신이 찾고있는 방법입니다.

나는 또한 Jar 파일은 NIO 파일 API를 사용하여 작업 할 soem 유틸리티 방법을 쓴
try (FileSystems jarFS = FileSystems.newFileSystem(URI.create("jar:" + jarURI), Collections.<String, Object>emptyMap())){ 
    Path resourcePath = jarFS.getPath(resourcePathString); 
    FileTime fileTime = Files.getLastModifiedTime(resourcePath); 
} 

:

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

라이브러리는 오픈 소스이다

0

같은 것을보십시오.

메이븐 :

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