client.jar
minecraft.jarはMinecraftのメインプログラムとして長らく使われていたファイル名であり、現在でも本体ファイルを指す際において慣例として用いられているファイル名である(1.6.2の更新時に新ランチャーへと切り替わった際に大幅に位置やファイル構造が変更になり、Minecraft バージョン名.jar
といった様にバージョンごとに扱えるよう変更されたが、中の構造は特に変化していない)。"Linux/その他OS"用のMinecraftランチャーと混同しないこと。バージョンごとのjarファイル(旧minecraft.jar) は新ランチャーでは.minecraft/versionsディレクトリ、Mac OS Xでは.minecraft/versionディレクトリにバージョンごとにディレクトリを分けて位置している。
アーカイブを展開するプログラム (例えばWinRAR、7-Zip等) を使うことで開くことができる。
以降、このページにおいてはminecraft.jarという表記で記述する。
minecraft.jar 内のファイル[編集 | ソースを編集]
minecraft.jar には数多くのファイルがあるが、以下のように分類することができる。
- テクスチャーファイル:Minecraftで用いられるテクスチャーで、全てが .png フォーマットである。
- クラス (class) ファイル:Minecraftがプログラムロジックに使用する、コンパイルされたJavaプログラム。ファイル名は "acq"とか"qn"などのようになっているが、これは名前などを隠す難読化ツールを使ったためである。しかし、その機能を理解するためにディスアセンブルすることはできる。また、Minecraft Coder Pack を使用して難読化を解除すると、よりわかりやすく機能を理解することができる。
- 言語ファイル:言語ファイルは、ゲーム内のメッセージ (実績、ツールチップ、メニュー) を変更するために使われる。ゲーム内のチャットには影響しない。
- テキストファイル:簡単にテキストを編集できるファイルで、スプラッシュテキストやテクスチャーパックの説明文といったものが含まれる。それ以外のテキストファイルにはachivemnets/map.txtがあり、実績メニューの背景を生成するためのコードが含まれる。
- META-INF ディレクトリ
ディレクトリ構造[編集 | ソースを編集]
client.jarファイルは以下のディレクトリ構造を持つ。簡潔のため、Java classファイルは省略されている。
version.jar
META-INF: 署名ファイルを含むJVMの情報
MANIFEST.MF
MOJANGCS.RSA
MOJANGCS.SF
assets: バニラ状態のリソースパック
minecraft
.mcassetsroot: バニラのリソースパックか否かを識別する空のファイル
com
mojang
blaze3d
data: バニラのデータパック
minecraft
.mcassetsroot: バニラのデータパックか否かを識別する空のファイル
net
minecraft
client
data
obfuscate
server
util
flightrecorder-config.jfc
pack.png: バニラのリソースパックとデータパックのアイコン
version.json
META-INF ディレクトリ[編集 | ソースを編集]
このディレクトリはゲームファイルについてのメタ情報、言うなればプログラムを実行するためにJavaが明示的に必要とする情報を含んでいる。
以前、本体を改変して導入するModを使うために、削除や修正、除去やチェックサムの確認を無効にするのに欠かせないため、このディレクトリはよく知られていた。META-INF ディレクトリにはデジタル証明書(CODESIGN.RSA)や、全てのJavaファイルのチェックサムを計算する MANIFEST.MF と CODESIGN.SF が含まれる。証明書はコードが改竄されていないことを証明するために発行され、Minecraftのブラウザ版をJavaの安全性のダイアログなしで実行できるようにする。ファイルが修正されたとき、証明書は(チェックサムが変更され)無効になり、修正されたファイルの実行を抑止する。META-INF を削除すると、証明書が削除され再び実行可能になる。
META-INF ディレクトリの削除には重大な副作用はない。しかし、minecraft.jarを直接実行する (ターミナル画面からやスクリプトから) ことが出来なくなり、貧弱なあるいは悪意を持って書かれたModの形式をした「ウィルス」に、理論上扉を開けることなる。ゲームを改変する (Modification) 際には十分注意すること。詳細についてはModページを参照してほしい。
開発バージョンではModのインストールを成功させるために、このフォルダーを削除する必要はない。
歴史[編集 | ソースを編集]
[閉じる]Java Edition pre-Classic | |||||||
---|---|---|---|---|---|---|---|
mc-161607 | Notchはゲームを他のプレイヤーへの配布とclient.jarの構築を始めた。 | ||||||
[閉じる]Java Edition Classic | |||||||
0.0.14a_08 | 署名ファイルとMOJANG_C.SF、MOJANG_C.DSAがMETA-INFフォルダに追加された。 | ||||||
[閉じる]Java Edition Indev | |||||||
0.31 | 20091223-0040 | Java classファイルがclient.jar/com/mojang/minecraftからclient.jar/net/minecraftに移動した。 | |||||
[閉じる]Java Edition Infdev | |||||||
20100627 | Java classファイルがすべてclient.jarのルートディレクトリに移動した。 | ||||||
[閉じる]Java Edition | |||||||
1.2.5 | 署名ファイルとMOJANG_C.SF、MOJANG_C.DSAが、CODESIGN.SFとCODESIGN.RSAに移動した。 | ||||||
1.21.4 | 24w45a | 新しいエントリーポイントnet.minecraft.client.data.Mainは現在client.jarにあり、server.jar内のデータジェネレータとして似たようなコマンドラインと共にある。 |
関連項目[編集 | ソースを編集]
ナビゲーション[編集 | ソースを編集]
[閉じる] | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||
|
[閉じる] | |||||||
---|---|---|---|---|---|---|---|
デモ版 | |||||||
開発 |
| ||||||
技術的情報 |
| ||||||
マルチプレイ | |||||||
ゲームのカスタマイズ |