JavaプログラムをWindows互換モードで動作させる
あらゆるWindowsプログラムにおいてあるようだが、Windowsがバージョンアップすると互換性を捨て去ってしまうようで、古いWindows用プログラムが正常に動作しなくなることがある。このような場合には、互換モードで動作させなくてはいけない。
互換モードで動作させないと、原因不明で急にプログラムが落ちてしまうようである。
2018/8/5:互換モードを簡単に設定するためのユーティリティを作成した。javawProperty:現在のjavaw.exeのプロパティダイアログを表示を参照されたい
一般的な.exe実行プログラムの場合
一般的な.exe形式のWindows用プログラムを互換モードで動作させるには、検索すればやり方が見つかると思うので、ここでは取り上げない。基本的には、その.exeファイルに互換モードの設定をすることになる。
.jar形式のJavaプログラムの場合
問題はJavaによる.jar形式のプログラムの場合である。互換モードで動作させないと、「Java(TM)Platform SE binaryの動作が停止しました」というエラーが発生し、いきなり実行がストップしてしまうことがあるらしい。
しかし、.jarファイルに互換モードを設定することはできない。この場合はjavaw.exeの方に互換モードを設定する必要がある。
.jar形式のJavaプログラムをダブルクリックすると、まずはjavaw.exeが実行され、その上で.jarファイルが実行されるからである。
もちろんこうしておけば、そのWindows内のすべての.jarファイルの実行において互換モードが適用されることになるので、個別に.exeに互換モードを設定するよりも楽かもしれない。
javaw.exeの特定
ただし、複数のJavaがインストールされている場合は、.jar拡張子に関連づけられたJavaがどれであるかをまず確認する必要がある。Windowsのファイル拡張子関連付けを確認するを参照して欲しい。
表示された.exeが、.jarをダブルクリックした時に起動されるJavaプログラムということになる。
※当然だが、新たにバージョンアップしたJavaをインストールした場合には、再度新しい方に互換モードを設定しなければならない。
javaw.exeに互換モードを設定する
次に、そのファイルをエクスプローラで探し出す。
右クリックでプロパティを選択する。
「互換性」タブで、「互換モードでこのプログラムを実行する」にチェックし、あとは適当と思われるOSを選択する。正直なところ、どれが適当であるかは私には何とも言えない。ここはやってみるしか無いと思われる。