Delphiを使用してMinecraftバージョンをインストールすることは可能ですか?
興味深いのは、
%appdata%\.minecraft\bin\minecraft.jar
バージョンを読む必要があるということです。
しかし、META-INF\MANIFEST.MF
読んでいない。
3 に答える
マニフェストファイルで指定されていない限り、Javaプログラムにはバージョンがありません。
たぶん、開発者はバージョン番号をJARファイル内のreadmeテキストファイルまたはその他のリソースに残しました。これはご存知のとおり、単なるZIPアーカイブです。
これらのいずれも機能しない場合は、ファイルサイズに基づいてMinefieldバージョンのカタログを作成することもできます。System FileSize()関数を使用して、JARファイルのファイルサイズを取得し、カタログで検索します。
状況によっては、カタログにファイルサイズが見つからない場合は、カタログした最新バージョンよりも新しいと見なすことができる場合があります。
カタログのファイルサイズに依存するよりも、ハッシュを生成する方がよいでしょう。CRC32でも十分です。
JARファイルは実際には単なるZIPファイルだと思います。最近のバージョンのDelphiには、Zipファイルにアクセスするためのツールを備えたユニットがあると聞きました。JARファイルの内部構造についてはよくわかりませんが、知っていて、探しているバージョン情報がどこかにある場合は、この方法で抽出できるはずです。
はい、可能です。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を変更していない限り、バージョンを確認するにはこれで十分です。