我需要删除jarFile.jar
> /META-INF
文件夹。
首先,我将原始jarFile.jar
提取到temp/ folder
然后我删除META-INF/
再次压缩,没有错误,但文件显示已损坏。
任何人都可以帮助我?
编辑:
public static void removeJarFiles(File jarFile, String[] files) throws IOException { File tempFolder = new File(jarFile.getParentFile(), "temp/"); tempFolder.mkdirs(); unZip(jarFile.getAbsolutePath(), tempFolder.getAbsolutePath()); // Decompress JAR // Delete files for (String file : files) { File f = new File(tempFolder, file); if (f.isDirectory()) { Util.deleteDir(f); } else { if (f.exists()) { f.delete(); } } } jarFile.delete(); // Delete OLD Jar // Re-Create JAR zipFolder(tempFolder.getAbsolutePath(), jarFile.getAbsolutePath()); }
答案 0 :(得分:3)
如果从jar中删除META-INF,则没有MANIFEST.MF,因此java -jar找不到主类。
您可以创建没有META-INF的jar,但是当您要执行jar时,需要META-INF / MANIFEST.MF。
请参阅http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html