Удалить папку META-INF

Мне нужно удалить 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());
}

1 ответ

Решение

Если вы удалите META-INF из jar, тогда MANIFEST.MF не будет, и поэтому java -jar не сможет найти основной класс.

Вы можете создавать jar без META-INF, но когда вы собираетесь выполнить jar, требуется META-INF/MANIFEST.MF.

См. http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html

Другие вопросы по тегам