Windows10でJavaがクラッシュしてしまう

2018年7月17日

昨今、Windows10上でJavaがクラッシュしてしまう事例の報告が相次いでいるのだが、当方では全く経験がなく、何が問題なのかもわかっていない。

もちろん、おそらくはWindows10においてマイクロソフトが互換性の無い更新を行ったものと思われるのだが、定かではない。Java側の問題かもしれない。

状況と対応策がわかり次第、こちらの投稿に追加していくことにする。

Javaを互換モードで実行する

Javaのバージョンが古い場合には、それだけでクラッシュしてしまうようである(2018/7現在の最新版はJava10)。

この場合には、Javaの実行をWindows互換モードで行うことを試した方がよい。

JavaプログラムをWindows互換モードで動作させるを参照していただきたい。

Windows10 Creators Updateを行うとクラッシュする

特にWindows10 Creators Updateを行うと問題が発生するという報告がある。

これについては、英語圏での複数の書き込みを発見した。

Creators Update causing Java crashes

これはマイクロソフト公式ページの書き込みである。内容としては、

  • Windows 10.0 , 64 bit Build 15063 (10.0.15063.0)
  • Java VM: Java HotSpot(TM) Client VM (25.131-b11 mixed mode windows-x86 )

の組み合わせで、EXCEPTION_ACCESS_VIOLATION (0xc0000005)が発生するというものだ。明らかにWindows側のバグであることは間違いない。

この書き込みでは、単純にJavaプログラムがファイルオープン・セーブをするとクラッシュしてしまうというものであり、かなり初歩的なバグがWindowsに仕込まれてしまったことがわかる。

この書き込みにリプライしたユーザはGodModeフォルダ(後述する)を作れと言っているが、マイクロソフト側の人間は「様々な問題が関わるからコンタクトしてくれ」と言うだけで解決策は示していない。

Windows 10 Creators Update causing Java to Crash

前述のページを示し、自分も同じ状態になっているという書き込みである。この問題は、ほとんどのJVM(つまりJava実行環境)で起きるという。Oracle JRE、OpenJDKなど。おそらくはIBM製のJavaでも同じだろうという。

※Javaはオープンソースのため、Oracle社だけから供給されているわけではない。

ここでは解決策が示されている。前述の書き込みと同じようにGodModeフォルダを作るだけだという。

GodModeフォルダを作成する

実際にGodModeフォルダを作成してみる。これはいわばWindowsの裏技用のツールを作成することである。以下の記載の通り、使用しなければ削除してよい。

  • デスクトップを右クリックし、新規作成>フォルダーを選択する。
  • 名前として以下を指定する(コピー・ペーストすればよい)
GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
  • Enterキーを押すと、アイコンがGodModeのものになる。
  • いったん作成したら削除してよい。GodModeフォルダを作成するだけで、システムに何らかの変更がなされるようだ。

以下に具体的な手順を示す。

デスクトップを右クリックし、新規作成>フォルダーを選択する。

「新しいフォルダー」という名前の代わりに先の名前をペーストする

Enterを押すと、このような状態になる。

いったん作成した後は削除してよい。

ちなみにGodModeとは?

ちなみに、GodModeとは何かと言えば、何のことは無い、コントロールパネルの機能へのショートカットが並んでいるだけである。特別に隠し技ができるわけではない。このフォルダをダブルクリックして開くと、以下のようなショートカット一覧が表示される。