Eclipse JRE Settings on Mac


MacでEclipseでJava開発するときのランタイム設定(JDK, JRE)をどうやっていたかのメモ。これもいつも忘れる。Mac買い換えるたびに似たようなことで四苦八苦する。

# 環境
macOS High Sierra (10.13.6)
MacBook Pro 2017

システム実行時にはJavaライブラリはここを参照して実行される。

/usr/bin/java
/usr/bin/javac

これはシンボリックリンクになっていてそれぞれこっちを見ている

/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

sdkmanを使用してインストールしたjavaライブラリはここに置かれる

/Users/<username>/.sdkman/candidates/java/current/bin/javac javac
/Users/<username>/.sdkman/candidates/java/current/bin/javac java

だから、sdkmanでインストールしたライブラリを使用するならば、/usr/bin配下のシンボリックリンクを書き換える必要がある

ところが、El Capitan以降のSIP(System Integrity Protection)でroot権限でもシンボリックリンクの書き換えができない! https://qiita.com/iwaseasahi/items/9d2e29b02df5cce7285d
でもこの方法は避けたい。
そうだ、Eclipse上でパスを直接設定してしまおう。

Eclipseの環境設定から、Java -> Installed JREsと選択、AddボタンでJREを追加する。
JRE Type : MacOSX VM JRE Home : /Users/{username}/.sdkman/candidates/java/{versionname}/jre
ここで、JRE Homeは直打ちしてしまう

これでシンボリックリンクもいらないしすべてOKなはずだ。


しかしここで別の問題が。
コード入力時にコード補完がされない(入力候補が出てこない)!
これはMacのショートカットキーの設定で変更する。
コントロール + スペース (^space) がなんと日本語入力ソースの選択に使われていた。自分で設定したのか覚えていない。とりあえずショートカットキー設定のチェックを外す。
Eclipseで適当なJavaコードを編集すると、コード補完が出てきた。
一件落着だが、なんだこの徒労感は。疲れた。

http://d.hatena.ne.jp/ux00ff/20130128/1359332210
どうもMacのデフォルト設定でコントロール + スペースは使われているらしい…