Windows 上的 JAR 文件中具有相同大小写的文件

File with same case in JAR file on Windows

我正在编辑我的一个旧项目中的字节码以修复错误,因为我不再拥有源代码。在我重新插入修改后的 class.

之前,一切都很好。

代码在我们发布的时候被混淆了,所以我有两个文件:hl.class和hL.class。 hl.class 是我重新插入的那个,但是使用 WinRAR 导致 hl.class 只替换 hL.class 并删除旧的 hl.class!这很烦人,我不知道如何重新插入该死的文件。

有没有人有任何见解?有没有节目不会像这样大放异彩?

谢谢!

总之,使用更好的压缩工具。我假设您卡在 Windows 上,它的文件系统不区分大小写。即使 GUI zip 工具的 none 工作,您始终可以打开 Python 命令提示符,它允许以编程方式访问 zip 文件,包括指定要插入的内容的确切文件名。

如果您可以使用 Linux 或 Mac 机器,那就简单多了。只需正常编辑文件并将其放回 zip 中即可。由于hl.class和hL.class的文件名不同,所以不会有任何问题。

P.S。另一个选项 - the Krakatau assembler 有一个选项可以将类文件直接输出到 jar,即使在 Windows 上也可以正确处理区分大小写的文件名。 Krakatau 通常也是用于类文件低级​​修改的好工具。 (爆料,我写的)

实际上我在 post 编辑这篇文章的那天就找到了解决方案,很抱歉我忘了回复 post 它!

如果您像我一样使用 Windows 机器,我发现了一个名为 muCommander 的便捷程序,它是一个不区分大小写的跨平台文件管理器。我设法将文件放入其中。

您还可以调整一些注册表值,让 Windows 识别区分大小写的文件,但我建议使用我在上面 post 编写的程序以使其更简单。

谢谢大家!