メモ:JREとアタッチコードのバージョンを合わせる件(追記)

昨日、OS組込みJDKと同じバージョンのOpenJDKをビルドし直したのは、Javaプログラムの実行時のJREとして、OS組込みJDKを指定していたためです。当然、実行時のJREを変更すれば、ビルドし直す必要はありませんでした

…という当たり前のことにビルド終わってから気づいた orz

Eclipseの設定

  1. Eclipseの[Preference]→[Java]→[installed JREs]を開く
  2. [Add]ボタンをクリックし、追加画面で「Standard VM」を選ぶ
  3. JRE-home」に、ビルドしたOpenJDKに含まれるJREを追加する
    • たとえば「/{opnejdk-build-dir}/build/linux-amd64/j2sdk-image/jre
    • linux-amd64」の箇所はプラットフォーム名なので、ビルド環境により異なる
  4. このとき、j2sdk-imageディレクトリ直下のsrc.zipが、rt.jarに自動でアタッチされる

あとは、サンプルコードを書くための新規Javaプロジェクトを作る際、JREに「j2sdk-image」を指定してあげればよいだけです。

これによって、デバッグ実行時に、java.lang.ClassLoader.classのコードを読むことができるようになります。ただし、sun.misc.Launcher.class等のコードは見えません。個別にソースコードをアタッチするか、デコンパイルする必要があります。