删除 ZIP/JAR 文件评论
Removing a ZIP/JAR file comment
当我 运行 在我的 JAR
文件上使用像 allatori
这样的混淆器时,它会在存档中添加一条评论,说 Obfuscation by Allatori Obfuscator http://www.allatori.com
使用WinRAR
,可以通过编辑存档评论来删除此评论。
但是,我没有找到在批处理脚本或 Java 代码中执行此操作以集成到我的构建过程中的方法。
如何做到?
这是使用 WinRAR CLI 更新存档文件注释的方法:
for %I in ("E:\YOUR\JAR\LOCATION\*.jar") do @"%ProgramFiles%\WinRAR\WinRAR.exe" c -zBLANK_COMMENT_FILE.txt "%I"
创建一个名为 BLANK_COMMENT_FILE.txt
的空白文件,您可以在其中 运行 此命令。
运行 此命令具有管理员权限。
希望对您有所帮助。
我猜你可以复制 zip 文件而不复制评论。
public static void removeComment(Path file) throws IOException {
Path tempFile = Files.createTempFile("temp", ".zip");
copyZipFile(file, tempFile, false);
Files.move(tempFile, file, StandardCopyOption.REPLACE_EXISTING);
}
public static void copyZipFile(Path file, Path newFile, boolean copyComment) throws IOException {
try (ZipFile zipFile = new ZipFile(file.toFile());
ZipOutputStream outputStream = new ZipOutputStream(new BufferedOutputStream(Files.newOutputStream(newFile)))) {
if (copyComment) {
outputStream.setComment(zipFile.getComment());
}
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
copyEntry(zipFile, outputStream, entries.nextElement());
}
}
}
private static void copyEntry(ZipFile zipFile, ZipOutputStream outputStream, ZipEntry entry) throws IOException {
ZipEntry newEntry = (ZipEntry) entry.clone();
outputStream.putNextEntry(newEntry);
IOUtils.copy(zipFile.getInputStream(entry), outputStream);
}
当我 运行 在我的 JAR
文件上使用像 allatori
这样的混淆器时,它会在存档中添加一条评论,说 Obfuscation by Allatori Obfuscator http://www.allatori.com
使用WinRAR
,可以通过编辑存档评论来删除此评论。
但是,我没有找到在批处理脚本或 Java 代码中执行此操作以集成到我的构建过程中的方法。
如何做到?
这是使用 WinRAR CLI 更新存档文件注释的方法:
for %I in ("E:\YOUR\JAR\LOCATION\*.jar") do @"%ProgramFiles%\WinRAR\WinRAR.exe" c -zBLANK_COMMENT_FILE.txt "%I"
创建一个名为 BLANK_COMMENT_FILE.txt
的空白文件,您可以在其中 运行 此命令。
运行 此命令具有管理员权限。
希望对您有所帮助。
我猜你可以复制 zip 文件而不复制评论。
public static void removeComment(Path file) throws IOException {
Path tempFile = Files.createTempFile("temp", ".zip");
copyZipFile(file, tempFile, false);
Files.move(tempFile, file, StandardCopyOption.REPLACE_EXISTING);
}
public static void copyZipFile(Path file, Path newFile, boolean copyComment) throws IOException {
try (ZipFile zipFile = new ZipFile(file.toFile());
ZipOutputStream outputStream = new ZipOutputStream(new BufferedOutputStream(Files.newOutputStream(newFile)))) {
if (copyComment) {
outputStream.setComment(zipFile.getComment());
}
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
copyEntry(zipFile, outputStream, entries.nextElement());
}
}
}
private static void copyEntry(ZipFile zipFile, ZipOutputStream outputStream, ZipEntry entry) throws IOException {
ZipEntry newEntry = (ZipEntry) entry.clone();
outputStream.putNextEntry(newEntry);
IOUtils.copy(zipFile.getInputStream(entry), outputStream);
}