jarファイル自体にアクセスできる場合は、java.util.jar
パッケージを使用してjarファイルを読み取ってからZipEntry
、マニフェストファイルをgetTime()
取得し、それを使用して最終更新時刻を取得できるはずです。
JarFile jf = new JarFile("myfile.jar");
ZipEntry manifest = jf.getEntry("META-INF/MANIFEST.MF");
long manifestTime = manifest.getTime(); //in standard millis
特定のクラスを処理する必要がある場合は、このコードも役立つ場合があります。
String rn = this.getClass().getName().replace('.', '/') + ".class";
String path = getClass().getClassLoader().getResource(rn).getPath();
String jarFile = path.substring(0, path.indexOf("!"));
次にjarFile
、jarのパス名が含まれます。クラスがjarファイルからロードされていない場合、-3行目は失敗し、path.indexOf
-1が返されることに注意してください。