1

Delphiを使用してMinecraftバージョンをインストールすることは可能ですか?
興味深いのは、 %appdata%\.minecraft\bin\minecraft.jarバージョンを読む必要があるということです。
しかし、META-INF\MANIFEST.MF読んでいない。

4

3 に答える 3

4

マニフェストファイルで指定されていない限り、Javaプログラムにはバージョンがありません。

たぶん、開発者はバージョン番号をJARファイル内のreadmeテキストファイルまたはその他のリソースに残しました。これはご存知のとおり、単なるZIPアーカイブです。

これらのいずれも機能しない場合は、ファイルサイズに基づいてMinefieldバージョンのカタログを作成することもできます。System FileSize()関数を使用して、JARファイルのファイルサイズを取得し、カタログで検索します。

状況によっては、カタログにファイルサイズが見つからない場合は、カタログした最新バージョンよりも新しいと見なすことができる場合があります。

カタログのファイルサイズに依存するよりも、ハッシュを生成する方がよいでしょう。CRC32でも十分です。

于 2011-11-02T16:48:58.883 に答える
2

JARファイルは実際には単なるZIPファイルだと思います。最近のバージョンのDelphiには、Zipファイルにアクセスするためのツールを備えたユニットがあると聞きました。JARファイルの内部構造についてはよくわかりませんが、知っていて、探しているバージョン情報がどこかにある場合は、この方法で抽出できるはずです。

于 2011-11-02T15:57:21.640 に答える
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 に答える