No, thank you.

おおよそ備忘録

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)を起動したところ、次の確認ダイアログが出ました。

Confirm from NetBeans: 'Invalid jdkhome specified'

  • はいを選ぶ
     ダイアログは消え、NetBeansが起動しました。
  • いいえを選ぶ
     ダイアログは消え、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に変更します 

  1. NetBeansの設定ファイルを探す
    ファイル名 netbeans.conf
    格納場所 [NetBeansインストールフォルダ]\etc\

    [NetBeansインストールフォルダ]がわからない場合

    • 規定のインストールフォルダを探す
       規定は[C:\Program Files\NetBeans x.x]です。
       ※「x.x」はNetBeansのバージョン
    • ショートカットから辿る
       NetBeansのショートカットを右クリックし、ショートカットメニューを表示します。
       ショートカットメニューからファイルの場所を開くをクリック。または、ショートカットメニューからプロパティをクリックし、開いたプロパティウィンドウからショートカットタブファイルの場所を開くをクリック。
       すると、ショートカットのリンク先となっているフォルダがエクスプローラで開くので、その周りを探しましょう。
       例えば、規定であれば[C:\Program Files\NetBeans x.x\bin]が開き、ひとつ上の階層がインストールフォルダでした。
     拙宅は規定なので、[C:\Program Files\NetBeans 8.1\etc\netbeans.conf]がありました。
  2. 〈jdkhome〉を変更する
     設定ファイル内で〈jdkhome〉的記述を探すと……
    netbeans_jdkhome="C:\Program Files\Java\jdk1.8.0_101"
     確認ダイアログ中に挙げられていた見つからないパスと合致するので、これでしょう。

     現在有効なJavaのパスに変更して、保存します。(元の記述はコメントアウトで残しておきました、念のため)
    #netbeans_jdkhome="C:\Program Files\Java\jdk1.8.0_101"
    netbeans_jdkhome="C:\Program Files\Java\jdk1.7.0_79"
  3. NetBeansを再起動する
     正しくできていれば、この起動時から確認ダイアログは表示されません。

 

 拙宅は NetBeans8.1 なので、Java SE 8 以降じゃないと別の部分で怒られるカモ? と危惧していたのですが、問題なく動いてくれています。