是否可以使用Delphi安装Minecraft版本?
有趣的是我需要阅读
%appdata%\.minecraft\bin\minecraft.jar
版本。
但没有META-INF\MANIFEST.MF
阅读。
答案 0 :(得分:4)
除非在Manifest文件中指定,否则Java程序没有版本。
也许开发人员将版本号保留在一些自述文本文件或JAR文件中的其他资源中,如您所知,这只是一个ZIP存档。
如果这些都不起作用,另一种方法是根据文件大小构建一个Minefield版本目录。使用System FileSize()函数获取JAR文件的文件大小,并在目录中查找。
根据具体情况,如果在目录中找不到文件大小,您可能会认为它比您编目的最新版本更新。
甚至比依靠目录的文件大小更好的是生成哈希。甚至CRC32就足够了。
答案 1 :(得分:2)
我相信JAR files实际上只是ZIP文件,我听说最近版本的Delphi有一个单元,可以使用工具来访问Zip文件。我不熟悉JAR文件的内部结构,但如果你是,并且你正在寻找的版本信息存在于某处,你应该能够以这种方式提取它。
答案 2 :(得分:2)
是的,有可能。您可以使用mojang提供的this xml data。
例如:
<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,这应该足以检查版本。