Удалить папку 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