List of usage examples for java.util.jar JarEntry getTime
public long getTime()
From source file:Main.java
public static void main(String[] args) throws IOException { JarFile jf = new JarFile(args[0]); Enumeration e = jf.entries(); while (e.hasMoreElements()) { JarEntry je = (JarEntry) e.nextElement(); String name = je.getName(); Date lastModified = new Date(je.getTime()); long uncompressedSize = je.getSize(); long compressedSize = je.getCompressedSize(); System.out.println(lastModified); System.out.println(uncompressedSize); System.out.println(compressedSize); }//ww w . j a va2 s.co m }
From source file:MainClass.java
public static void main(String[] args) throws IOException { JarFile jf = new JarFile(args[0]); Enumeration e = jf.entries(); while (e.hasMoreElements()) { JarEntry je = (JarEntry) e.nextElement(); String name = je.getName(); Date lastModified = new Date(je.getTime()); long uncompressedSize = je.getSize(); long compressedSize = je.getCompressedSize(); int method = je.getMethod(); if (method == ZipEntry.STORED) { System.out.println(name + " was stored at " + lastModified); System.out.println("with a size of " + uncompressedSize + " bytes"); } else if (method == ZipEntry.DEFLATED) { System.out.println(name + " was deflated at " + lastModified); System.out.println("from " + uncompressedSize + " bytes to " + compressedSize + " bytes, a savings of " + (100.0 - 100.0 * compressedSize / uncompressedSize) + "%"); } else {/*from ww w . j av a 2s. c om*/ System.out.println(name + " was compressed using an unrecognized method at " + lastModified); System.out.println("from " + uncompressedSize + " bytes to " + compressedSize + " bytes, a savings of " + (100.0 - 100.0 * compressedSize / uncompressedSize) + "%"); } } }
From source file:Main.java
public static void main(String[] args) throws IOException { JarFile jf = new JarFile("a.jar"); Enumeration e = jf.entries(); while (e.hasMoreElements()) { JarEntry je = (JarEntry) e.nextElement(); System.out.println(je.getName()); long uncompressedSize = je.getSize(); long compressedSize = je.getCompressedSize(); long crc = je.getCrc(); int method = je.getMethod(); String comment = je.getComment(); System.out.println(new Date(je.getTime())); System.out.println("from " + uncompressedSize + " bytes to " + compressedSize); if (method == ZipEntry.STORED) { System.out.println("ZipEntry.STORED"); } else if (method == ZipEntry.DEFLATED) { System.out.println(ZipEntry.DEFLATED); }//from w w w .j a va 2 s.c o m System.out.println("Its CRC is " + crc); System.out.println(comment); System.out.println(je.isDirectory()); Attributes a = je.getAttributes(); if (a != null) { Object[] nameValuePairs = a.entrySet().toArray(); for (int j = 0; j < nameValuePairs.length; j++) { System.out.println(nameValuePairs[j]); } } System.out.println(); } }
From source file:ArchiveUtil.java
private static void extractEntry(File entryFile, JarInputStream jis, JarEntry entry, boolean deleteOnExit) throws IOException { File parent = new File(entryFile.getParent()); if (!parent.exists()) parent.mkdirs();//from ww w . j a v a 2 s . c o m ResourceUtil.copy(jis, new FileOutputStream(entryFile)); entryFile.setLastModified(entry.getTime()); if (deleteOnExit) { parent.deleteOnExit(); entryFile.deleteOnExit(); } }
From source file:cc.pp.analyzer.paoding.knife.PaodingMaker.java
@SuppressWarnings("resource") private static long getFileLastModified(File file) throws IOException { String path = file.getPath(); int jarIndex = path.indexOf(".jar!"); if (jarIndex == -1) { return file.lastModified(); } else {/*from www .java2 s. com*/ path = path.replaceAll("%20", " ").replaceAll("\\\\", "/"); jarIndex = path.indexOf(".jar!"); int protocalIndex = path.indexOf(":"); String jarPath = path.substring(protocalIndex + ":".length(), jarIndex + ".jar".length()); File jarPathFile = new File(jarPath); JarFile jarFile; try { jarFile = new JarFile(jarPathFile); String entryPath = path.substring(jarIndex + ".jar!/".length()); JarEntry entry = jarFile.getJarEntry(entryPath); return entry.getTime(); } catch (IOException e) { System.err.println("error in handler path=" + path); System.err.println("error in handler jarPath=" + jarPath); throw e; } } }
From source file:net.paoding.analysis.knife.PaodingMaker.java
private static long getFileLastModified(File file) throws IOException { String path = file.getPath(); int jarIndex = path.indexOf(".jar!"); if (jarIndex == -1) { return file.lastModified(); } else {/*from www . j a v a2 s. c o m*/ path = path.replaceAll("%20", " ").replaceAll("\\\\", "/"); jarIndex = path.indexOf(".jar!"); int protocalIndex = path.indexOf(":"); String jarPath = path.substring(protocalIndex + ":".length(), jarIndex + ".jar".length()); File jarPathFile = new File(jarPath); JarFile jarFile; try { jarFile = new JarFile(jarPathFile); String entryPath = path.substring(jarIndex + ".jar!/".length()); JarEntry entry = jarFile.getJarEntry(entryPath); return entry.getTime(); } catch (IOException e) { System.err.println("error in handler path=" + path); System.err.println("error in handler jarPath=" + jarPath); throw e; } } }
From source file:ArchiveUtil.java
/** * Extracts the file {@code archive} to the target dir {@code targetDir} and deletes the * files extracted upon jvm exit if the flag {@code deleteOnExit} is true. */// ww w .j a v a 2 s . com public static boolean extract(URL archive, File targetDir, boolean deleteOnExit) throws IOException { String archiveStr = archive.toString(); String jarEntry = null; int idx = archiveStr.indexOf("!/"); if (idx != -1) { if (!archiveStr.startsWith("jar:") && archiveStr.length() == idx + 2) return false; archive = new URL(archiveStr.substring(4, idx)); jarEntry = archiveStr.substring(idx + 2); } else if (!isSupported(archiveStr)) return false; JarInputStream jis = new JarInputStream(archive.openConnection().getInputStream()); if (!targetDir.exists()) targetDir.mkdirs(); JarEntry entry = null; while ((entry = jis.getNextJarEntry()) != null) { String entryName = entry.getName(); File entryFile = new File(targetDir, entryName); if (!entry.isDirectory()) { if (jarEntry == null || entryName.startsWith(jarEntry)) { if (!entryFile.exists() || entryFile.lastModified() != entry.getTime()) extractEntry(entryFile, jis, entry, deleteOnExit); } } } try { jis.close(); } catch (Exception e) { } return true; }
From source file:net.lightbody.bmp.proxy.jetty.util.JarResource.java
public static void extract(Resource resource, File directory, boolean deleteOnExit) throws IOException { if (log.isDebugEnabled()) log.debug("Extract " + resource + " to " + directory); JarInputStream jin = new JarInputStream(resource.getInputStream()); JarEntry entry = null; while ((entry = jin.getNextJarEntry()) != null) { File file = new File(directory, entry.getName()); if (entry.isDirectory()) { // Make directory if (!file.exists()) file.mkdirs();//from w w w .jav a 2s.c o m } else { // make directory (some jars don't list dirs) File dir = new File(file.getParent()); if (!dir.exists()) dir.mkdirs(); // Make file FileOutputStream fout = null; try { fout = new FileOutputStream(file); IO.copy(jin, fout); } finally { IO.close(fout); } // touch the file. if (entry.getTime() >= 0) file.setLastModified(entry.getTime()); } if (deleteOnExit) file.deleteOnExit(); } }
From source file:com.taobao.android.builder.tools.classinject.CodeInjectByJavassist.java
/** * jar?//from ww w. j ava 2 s .c o m * * @param inJar * @param outJar * @throws IOException * @throws NotFoundException * @throws CannotCompileException */ public static List<String> inject(ClassPool pool, File inJar, File outJar, InjectParam injectParam) throws Exception { List<String> errorFiles = new ArrayList<String>(); JarFile jarFile = newJarFile(inJar); outJar.getParentFile().mkdirs(); FileOutputStream fileOutputStream = new FileOutputStream(outJar); JarOutputStream jos = new JarOutputStream(new BufferedOutputStream(fileOutputStream)); Enumeration<JarEntry> jarFileEntries = jarFile.entries(); JarEntry jarEntry = null; while (jarFileEntries.hasMoreElements()) { jarEntry = jarFileEntries.nextElement(); String name = jarEntry.getName(); String className = StringUtils.replace(name, File.separator, "/"); className = StringUtils.replace(className, "/", "."); className = StringUtils.substring(className, 0, className.length() - 6); if (!StringUtils.endsWithIgnoreCase(name, ".class")) { InputStream inputStream = jarFile.getInputStream(jarEntry); copyStreamToJar(inputStream, jos, name, jarEntry.getTime(), jarEntry); IOUtils.closeQuietly(inputStream); } else { byte[] codes; codes = inject(pool, className, injectParam); InputStream classInstream = new ByteArrayInputStream(codes); copyStreamToJar(classInstream, jos, name, jarEntry.getTime(), jarEntry); } } jarFile.close(); IOUtils.closeQuietly(jos); return errorFiles; }
From source file:WarUtil.java
/** * WAR???????????//from w w w .ja v a2s .c om * * @param warFile * @param directory * @throws IOException */ public static void extractWar(File warFile, File directory) throws IOException { try { long timestamp = warFile.lastModified(); File warModifiedTimeFile = new File(directory, LAST_MODIFIED_FILE); long lastModified = readLastModifiled(warModifiedTimeFile); if (timestamp == lastModified) { // log.info("war file " + warFile.getName() + " not modified."); return; } if (directory.exists()) { // IOUtil.forceRemoveDirectory(directory); directory.mkdir(); } // log.info("war extract start. warfile=" + warFile.getName()); JarInputStream jin = new JarInputStream(new BufferedInputStream(new FileInputStream(warFile))); JarEntry entry = null; while ((entry = jin.getNextJarEntry()) != null) { File file = new File(directory, entry.getName()); if (entry.isDirectory()) { if (!file.exists()) { file.mkdirs(); } } else { File dir = new File(file.getParent()); if (!dir.exists()) { dir.mkdirs(); } FileOutputStream fout = null; try { fout = new FileOutputStream(file); ResourceUtil.copyStream(jin, fout); } finally { fout.flush(); fout.close(); fout = null; } if (entry.getTime() >= 0) { file.setLastModified(entry.getTime()); } } } writeLastModifiled(warModifiedTimeFile, timestamp); //log.info("war extract success. lastmodified=" + timestamp); } catch (IOException ioe) { //log.info("war extract fail."); throw ioe; } }