client.jar

提供:Minecraft Wiki
Minecraft.jarから転送)
ナビゲーションに移動 検索に移動
この記事は内容の更新を必要とします。 
この記事を更新して、最近のアップデートや新たな情報を反映してください。

minecraft.jarMinecraftのメインプログラムとして長らく使われていたファイル名であり、現在でも本体ファイルを指す際において慣例として用いられているファイル名である(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ファイルは省略されている。

  • File archive.png: Minecraftのarchiveのスプライト画像 version.jar
    • File directory.png: Minecraftのdirectoryのスプライト画像 META-INF: 署名ファイルを含むJVMの情報
      • File file.png: Minecraftのfileのスプライト画像 MANIFEST.MF
      • File file.png: Minecraftのfileのスプライト画像 MOJANGCS.RSA
      • File file.png: Minecraftのfileのスプライト画像 MOJANGCS.SF
    • File directory.png: Minecraftのdirectoryのスプライト画像 assets: バニラ状態のリソースパック
      • File directory.png: Minecraftのdirectoryのスプライト画像 minecraft
        • File directory.png: Minecraftのdirectoryのスプライト画像 atlases
        • File directory.png: Minecraftのdirectoryのスプライト画像 blockstates
        • File directory.png: Minecraftのdirectoryのスプライト画像 font
        • File directory.png: Minecraftのdirectoryのスプライト画像 items
        • File directory.png: Minecraftのdirectoryのスプライト画像 lang
          • File file.png: Minecraftのfileのスプライト画像 en_us.json
        • File directory.png: Minecraftのdirectoryのスプライト画像 models
        • File directory.png: Minecraftのdirectoryのスプライト画像 particles
        • File directory.png: Minecraftのdirectoryのスプライト画像 shaders
        • File directory.png: Minecraftのdirectoryのスプライト画像 texts
        • File directory.png: Minecraftのdirectoryのスプライト画像 textures
        • File file.png: Minecraftのfileのスプライト画像 gpu_warnlist.json
        • File file.png: Minecraftのfileのスプライト画像 regional_compliancies.json
      • File file.png: Minecraftのfileのスプライト画像 .mcassetsroot: バニラのリソースパックか否かを識別する空のファイル
    • File directory.png: Minecraftのdirectoryのスプライト画像 com
      • File directory.png: Minecraftのdirectoryのスプライト画像 mojang
        • File directory.png: Minecraftのdirectoryのスプライト画像 blaze3d
    • File directory.png: Minecraftのdirectoryのスプライト画像 data: バニラのデータパック
      • File directory.png: Minecraftのdirectoryのスプライト画像 minecraft
        • File directory.png: Minecraftのdirectoryのスプライト画像 advancement
        • File directory.png: Minecraftのdirectoryのスプライト画像 banner_pattern
        • File directory.png: Minecraftのdirectoryのスプライト画像 chat_type
        • File directory.png: Minecraftのdirectoryのスプライト画像 damage_type
        • File directory.png: Minecraftのdirectoryのスプライト画像 datapacks
          • File directory.png: Minecraftのdirectoryのスプライト画像 bundle
          • File directory.png: Minecraftのdirectoryのスプライト画像 trade_rebalance
        • File directory.png: Minecraftのdirectoryのスプライト画像 dimension_type
        • File directory.png: Minecraftのdirectoryのスプライト画像 enchantment
        • File directory.png: Minecraftのdirectoryのスプライト画像 enchantment_provider
          • File directory.png: Minecraftのdirectoryのスプライト画像 raid
        • File directory.png: Minecraftのdirectoryのスプライト画像 jukebox_song
        • File directory.png: Minecraftのdirectoryのスプライト画像 loot_table
        • File directory.png: Minecraftのdirectoryのスプライト画像 recipe
        • File directory.png: Minecraftのdirectoryのスプライト画像 structure
        • File directory.png: Minecraftのdirectoryのスプライト画像 tags
        • File directory.png: Minecraftのdirectoryのスプライト画像 trim_material
        • File directory.png: Minecraftのdirectoryのスプライト画像 trim_pattern
        • File directory.png: Minecraftのdirectoryのスプライト画像 wolf_variant
        • File directory.png: Minecraftのdirectoryのスプライト画像 worldgen
      • File file.png: Minecraftのfileのスプライト画像 .mcassetsroot: バニラのデータパックか否かを識別する空のファイル
    • File directory.png: Minecraftのdirectoryのスプライト画像 net
      • File directory.png: Minecraftのdirectoryのスプライト画像 minecraft
        • File directory.png: Minecraftのdirectoryのスプライト画像 client
        • File directory.png: Minecraftのdirectoryのスプライト画像 data
        • File directory.png: Minecraftのdirectoryのスプライト画像 obfuscate
        • File directory.png: Minecraftのdirectoryのスプライト画像 server
        • File directory.png: Minecraftのdirectoryのスプライト画像 util
    • File file.png: Minecraftのfileのスプライト画像 flightrecorder-config.jfc
    • File file.png: Minecraftのfileのスプライト画像 pack.png: バニラのリソースパックとデータパックのアイコン
    • File file.png: Minecraftのfileのスプライト画像 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-161607Notchはゲームを他のプレイヤーへの配布とclient.jarの構築を始めた。
[閉じる]Java Edition Classic
0.0.14a_08署名ファイルとMOJANG_C.SF、MOJANG_C.DSAがMETA-INFフォルダに追加された。
[閉じる]Java Edition Indev
0.3120091223-0040Java classファイルがclient.jar/com/mojang/minecraftからclient.jar/net/minecraftに移動した。
[閉じる]Java Edition Infdev
20100627Java classファイルがすべてclient.jarのルートディレクトリに移動した。
[閉じる]Java Edition
1.2.5署名ファイルとMOJANG_C.SF、MOJANG_C.DSAが、CODESIGN.SFとCODESIGN.RSAに移動した。
1.21.424w45a新しいエントリーポイントnet.minecraft.client.data.Mainは現在client.jarにあり、server.jar内のデータジェネレータとして似たようなコマンドラインと共にある。

関連項目[編集 | ソースを編集]

ナビゲーション[編集 | ソースを編集]