パソコン・メモメモ備忘録

気の向くままパソコン関係等で気になることを書き記す。時々更新!

拡張子の関連付けの設定 調査中…

息子から.jar ファイルをダブルクリックしても、起動できなくなったと相談された。確かに、ダブルクリックしても、開く、から選んでもプログラムから開くで Java Platform SE binary を選んでも無反応。

昔の Windows だと、エクスプローラーのオプション辺りで、拡張子とプログラムの関連付けが編集できたのだが、Windows8 や 10 では見つからず。調べてみると、コントロールパネルの「既定のプログラム」から設定できる様子。ここで、.jar ファイルを jre bin あたりの javaw.exe と関連付けてみたのだが、変化が見られない。画面に表示しているアイコンには影響を及ぼしている感があるのだが。

更に調べてみると、レジストリを直接いじらないと、関連付けは反映されないっぽい。特に、エクスプローラーからダブルクリックで開く場合は。

.jar ファイルの場合
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jar
以下のキーと
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ApplicationAssociationToasts
以下のキーで、jar に関係しそうなもの
が、何か関係していることは掴んだが、良くわからない部分もある。

ApplicationAssociationToasts 以下に、AAAA_BBB という項目がある場合、BBB が拡張子(上の例では jar)で、AAAA は、上記の ~FileExts\.jar 以下の OpenWithProgids の下の項目名になっているようだ。拡張子に"_"の文字が含まれるとややこしいことになりそうだが、拡張子には"_" は使えないことになっているのかな?

ただ、このあたりの設定が無かったりおかしい場合は、
HKEY_CLASSES_ROOT\.jar
や、このキーの下で定義されている jarfile の定義
HKEY_CLASSES_ROOT\jarfile\shell
あたりの定義に従って、関連付けられたプログラムが実行されるように思う。上の方の jarfile とここの jarfile は紐付いたキーワードなんだろうか。

後、コマンドプロンプト(管理者出ないと駄目かも)の assoc や、ftype で、HKEY_CLASS_ROOT 系のレジストリ項目が変更できるようだ。レジストリエディタを使うよりは便利か。

というところで、同様にレジストリの設定を調べている人がいた(sas6809 さんのブログ記事)。小生のこの記事よりわかりやすいし詳しく調べられている。

とりあえず、関連付けは結構ややこしい事はわかった。