「Java(TM)Platform SE binaryの動作が停止しました」の解決法

2019年5月15日

Windows10でJavaがクラッシュしてしまうでJavaのクラッシュについて記述したのだが、これとは別の現象でJavaがクラッシュしてしまうことがある。

特に、人気のゲーム「マインクラフト」(Minecraft)がJava製であることもあり、このユーザが困っているという書き込みが多数ある。もちろん、他のJava製のプログラムにも同様に当てはまる。

現象

現象としてはこうだ。Javaプログラムを動作中に突然以下のようなダイアログが現れ、プログラムが落ちてしまうという現象である。

ユーザによれば、毎回特定の操作を行っているときということなのだが、特に問題が出るような箇所でもなく、そもそもアプリケーションプログラム中にどんなバグがあろうがJava自体をクラッシュさせることはできない(少なくともその原理としては)。であるから、アプリケーションプログラム自体のバグに起因するものではない。

解決法

ネットを調べてみると、複数の解決法が見つかる。以下のようなものであるが、どれが根本的な解決法かはわからない。解消しない場合には、すべて試してみていただきたい。

Javaを互換モードで動作させる

Windowsのバージョンが上がると互換性が無くなってしまうらしい。これはWindows側のせい。古いJava(例えばJava8)を、新たなWindows(例えばWin10)において「以前のWindows環境で動作させる」には以下を参照してほしい。

JavaプログラムをWindows互換モードで動作させる

ビデオドライバを更新する。

Java-VMを出しているOracle社によって解決策として示されているのが、ビデオドライバを更新することだ。「多くの場合、ビデオドライバに起因している」と主張している。特にNVIDIA、Radeon ATI、Intelの場合はドライバを最新しろとのことだ。

Javaのキャッシュを削除する

Javaキャッシュを削除してみろという。具体的には、コントロールパネル>Javaを開き、一般>設定>ファイルの削除ですべてにチェックを入れてOKするだけだ。

Javaの最大ヒープメモリサイズを大きくする

これはVMの起動時に指定しても良いのだが、一般ユーザとしては以下の方法が簡単だろう。

Windowsシステム環境変数でJava-VMオプションを指定する方法にて記述した。この通りに行えばよい。

参考資料

以下を参考にした。