NetBeans起動時「Invalid jdkhome specified」
新しいプロジェクトに参画したとき、開発環境の整えてある端末を先に用意してもらえていたことがありました。非常に有難かったのですが、Javaバージョンがプロジェクト要件に合っていなくて、そこだけインストールし直すことに……。
(不要なJDKのアンインストール、必要なJDKのインストール、環境変数%JAVA_HOME%追加、etc...)
アンインストールした Javaバージョン | 1.8.0_101 |
---|---|
インストールした Javaバージョン | 1.7.0_79 |
%JAVA_HOME% | C:\Program Files\Java\jdk1.7.0_79 |
さて、いざ開発! と、プロジェクト要件にある統合開発環境『NetBeans IDE』(以下、NetBeans)を起動したところ、次の確認ダイアログが出ました。
OS | Windows 7 Professional (Service Pack 1) 32bit |
---|---|
NetBeans | 8.1 |
原因
Cannot locate java installation in specifed jdkhome:
C:\Program Files\Java\jdk1.8.0_101
Do you want to try to use default version?
「指定された〈jdkhome〉にJavaのインストールが見つからないので、代わりにデフォルトのバージョンを使用しますか?」
という感じでしょうか。
〈jdkhome〉に指定されているらしいJavaバージョンは、アンインストールしたものと合致します。
そういえば、Javaを入れ直した際に、NetBeansの設定までは変更していませんでした。
……%JAVA_HOME%じゃあ、ダメみたいです。
暫定対処
特に無し。
確認ダイアログではいを選べば起動するゆえ。
ダイアログ文のとおり、デフォルトのJDKバージョン(%JAVA_HOME%?)を探して、それで起動してくれるみたいです。
ヘルプ(H)>バージョン情報から、起動に使用されたJavaのバージョンが確認できました。
動作の方も問題なさそうです。ただし、起動のたびに煩わしい……。
恒久対策
見つからないと指摘された〈jdkhome〉の指定を、現在有効なJavaに変更します
- NetBeansの設定ファイルを探す
ファイル名 netbeans.conf 格納場所 [NetBeansインストールフォルダ]\etc\ [NetBeansインストールフォルダ]がわからない場合
- 規定のインストールフォルダを探す
規定は[C:\Program Files\NetBeans x.x]です。
※「x.x」はNetBeansのバージョン - ショートカットから辿る
NetBeansのショートカットを右クリックし、ショートカットメニューを表示します。
ショートカットメニューからファイルの場所を開くをクリック。または、ショートカットメニューからプロパティをクリックし、開いたプロパティウィンドウからショートカットタブ>ファイルの場所を開くをクリック。
すると、ショートカットのリンク先となっているフォルダがエクスプローラで開くので、その周りを探しましょう。
例えば、規定であれば[C:\Program Files\NetBeans x.x\bin]が開き、ひとつ上の階層がインストールフォルダでした。
- 規定のインストールフォルダを探す
- 〈jdkhome〉を変更する
設定ファイル内で〈jdkhome〉的記述を探すと……netbeans.confnetbeans_jdkhome="C:\Program Files\Java\jdk1.8.0_101"
現在有効なJavaのパスに変更して、保存します。(元の記述はコメントアウトで残しておきました、念のため)netbeans.conf#netbeans_jdkhome="C:\Program Files\Java\jdk1.8.0_101" netbeans_jdkhome="C:\Program Files\Java\jdk1.7.0_79"
- NetBeansを再起動する
正しくできていれば、この起動時から確認ダイアログは表示されません。
拙宅は NetBeans8.1 なので、Java SE 8 以降じゃないと別の部分で怒られるカモ? と危惧していたのですが、問題なく動いてくれています。