是否可以使用 Delphi 安装 Minecraft 版本?
有趣的部分是我需要阅读
%appdata%\.minecraft\bin\minecraft.jar
版本。
但不META-INF\MANIFEST.MF
读书。
问问题
792 次
3 回答
4
除非在 Manifest 文件中指定,否则 Java 程序没有版本。
也许开发人员将版本号留在了一些自述文本文件或 JAR 文件中的一些其他资源中,如您所知,它只是一个 ZIP 存档。
如果这些都不起作用,另一种方法是根据文件大小构建 Minefield 版本的目录。使用 System FileSize() 函数获取 JAR 文件的文件大小并在您的目录中查找它。
根据具体情况,如果在您的目录中找不到文件大小,您可以假设它比您编目的最新版本更新。
比依赖目录的文件大小更好的是生成哈希。即使是 CRC32 也足够了。
于 2011-11-02T16:48:58.883 回答
2
对的,这是可能的。您可以使用mojang 提供的这个 xml 数据。
例如:
<Contents>
<Key>11w47a/minecraft.jar</Key>
<LastModified>2011-11-24T13:20:06.000Z</LastModified>
<ETag>"2ad75c809570663ec561ca707983a45b"</ETag>
<Size>2242242</Size>
<Owner>...</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
如您所见,它们在<Key>
标签中提供版本和文件名。二进制的 md5 和存储在<ETag>
标签中。只要您没有修改您的 jar,这应该足以检查版本。
于 2013-03-12T12:58:53.893 回答
2
我相信JAR 文件实际上只是 ZIP 文件,而且我听说最近版本的 Delphi 有一个带有访问 Zip 文件的工具的单元。我不熟悉 JAR 文件的内部结构,但如果您熟悉,并且您要查找的版本信息存在于某个地方,您应该可以通过这种方式提取它。
于 2011-11-02T15:57:21.640 回答