我需要删除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

10-05 21:42