0

我需要删除jarFile.jar >/META-INF 文件夹。

首先,我将原件提取jarFile.jartemp/ 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());
}
4

1 回答 1

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

于 2014-02-01T18:25:36.353 回答