Post date: Jan 9, 2015 3:03:54 PM
ホットデプロイとかしようとするときにコンパイラを持ってきたい時がある.
そんな時にJavaCompiler compiler=ToolProvider.getSystemJavaCompiler();とかすることがあるが,eclipseで実行するとnullしか返してくれないことがある.
これはeclipseがもともともってるjreではダメ?だかららしい.なのでjdkに設定し直さないといけない.
とりあえず今回はjdk7をつかうことにする.jdkをダウンロード+インストール.(今回は64bitを入れた)
eclipseで,メニューの「プロジェクト」→「プロパティー」を選択.
「javaのビルド・パス」から「ライブラリー」のタブを選択,「JREシステム・ライブラリー[JavaSE-1.7]」をクリックして「編集」を押す.
代替JREを選択した後,「インストール済みのJRE…」ボタンをクリック
「検索」ボタンをクリック
C:\Program Files\Java\jdk1.7.0_xx のjdk1.7.0_xxフォルダをクリック
すると項目が増えるので増えた「jre」にチェックをしてOKを押す
すると代替JREに「jre」という選択肢が出てくるので,それを選択して完了
これでToolProvider.getSystemJavaCompiler()がnullを返さなくなったはず
ちなみにSystem.out.println(System.getProperty("java.home"));するとちゃんと「C:\Program Files\Java\jdk1.7.0_xx\jre」とかになってるはず