install4j:从 Windows 安装程序中提取应用程序 JAR

问题描述

我们正在寻找一种方法来从使用 install4j 构建的 EXE 安装程序中提取我们的应用程序 JAR 和资源。我们正在尝试在没有实际安装的情况下自动测试安装程序 - 我们希望运行从安装程序解压缩的应用程序主 JAR。

在 PE 文件格式解析器 https://github.com/kichik/pecoff4j 的帮助下,我发现内容的主要部分位于图像的某种序言中。当我在 7-Zip 中打开安装程序时,会显示相同大小的相同条目:

z-Zip

但是条目的格式对于 7-Zip 来说是未知的,我无法深入。当我在十六进制编辑器中打开条目时,我发现了一些应用程序资源内容、类名称等。

问题是 - 条目的格式是什么以及如何解析它?

P.S.:Apple 的 DMG 和 Linux 的 SH 似乎应该没有问题 - 因为它们是常规档案,我希望我可以在我的 Java 代码中阅读它们。

解决方法

这不是文档格式,它是安装程序的内部格式。您可以构建一个额外的 Windows ZIP 存档媒体文件并将其解压缩。它将具有与安装程序相同的内容。