我需要删除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());
}
最佳答案
如果从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