NetBeansをいつものように起動しようとしたら、何も出ないままいつまで経っても起動しない…。前回は普通に起動していたのに…。このようになった時のことをここに書き残しておく。
*環境
OS: Windows 10
NetBeans: Apache NetBeans IDE 11.1
Java: JDK 13
*netbeans.conf(下の方でも記述あり)を編集したら同様に起動しなくなってしまうことがあるので、もしnetbeans.confを直近で編集したのであればまず元に戻してみよう。それでもダメだった時の話が以下のとおり。
#エラーの内容
デスクトップ上とかのショートカットで起動しようとすると、何も起こらない。エラーメッセージなど何も出ない。ここで、コマンドプロンプトで起動してみる。
C:\Program Files\NetBeans-11.1\netbeans\bin>netbeans.exe
こちらでもやはり起動に失敗するが、エラーメッセージが出る。
(再現しようと思ったが、できなかったのでどのようなエラーメッセージかは出せませんでした。すみません。)
そのエラーメッセージの中で、ログを出している場所を教えてくれるので、そのログを開いてみよう。場所の例としては、
C:\Users\【ユーザー名】\AppData\Local\Temp
で、ログファイルの名称はhs_err_pid18004.logというような感じ。(数字はプロセスIDなので、きっと違う番号になっている。)中身の最初の方は以下のような感じ。
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007fff2a50f98a, pid=18004, tid=12052
#
# JRE version: Java(TM) SE Runtime Environment (13.0+33) (build 13+33)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (13+33, mixed mode, sharing, tiered, >compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C [awt.dll+0x8f98a]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of >Windows
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
EXCEPTION_ACCESS_VIOLATIONがエラーの内容であるわけだが、メモリの読み取り違反ではないかと推測される。どこで問題が起こったかというと、
# C [awt.dll+0x8f98a]
の所に書かれている。
awt.dllというのは、java\jdk-13\binの中にあるファイル。これはいじりようがないファイル…。
#今回の解決方法
最終的には起動に成功したわけだが、どうしたかというと、
JDKをバージョンダウンした
ことである。JDKを13から12.0.2にバージョンダウンして、
C:\Program Files\NetBeans-11.1\netbeans\etc
にあるnetbeans.confの中身の一部を以下のように書き換える。(数字はバージョンに合わせる)
netbeans_jdkhome="C:\Program Files\Java\jdk-12.0.2"
*Windowsでは直に書き換えられない(保存できない)と思うので、そのファイルをどこかにコピーして書き換えて、その書き換えたファイルをペーストしよう。
これで起動に成功!
同じような目に遭った方がいたら、参考にしてくれると幸いです。
##余談
起動に成功したから、この記事を書くために再現しようとnetbeans.confを戻したらなぜかそれでも起動できた。一体何だったんだ…。