-クラスローダー

まず、調べてみたところ、Eclipseのプラグイン内のクラスローダーはorg.eclipse.core.runtime.adaptor.EclipseClassLoaderというクラスでした。これは、\eclipse\pluginsの下を見るクラスローダーで、特徴はプラットホーム毎に利用するクラスバイナリが異なる場合にもきちんと切り替える機能を持っています。
一方、プロジェクトのクラスを読み出すには、org.eclipse.jdt.launching.JavaRuntime#getVMInstall(IJavaProject)でIVMInstall-IVMRunnerとくる、デバッガのようなルートになるみたいです。プラグインから見たときには、プロジェクト内のJavaクラスやインターフェイスなどは、ファイルシステム上の1ノードとして捉えていて、その構造はorg.eclipse.jdt.core.IJavaProject、IPackageFragment、IClassFile、IMethodとメタ情報になっていてこのメタ世界で独自のリフレクションなのです。IClassFileはnewInstanceを持たず、IMethodもinvokeみたいな実行ものはもたず、とにかく言語的な構造のみを持っています。
バックグラウンドでLaunchingして生きたS2Containerを持っておくか、JDTワールドの構造を持ってくる仕組みか、どうするかはもう少し調査です。検証だけならJDTワールドのほうができることに柔軟性がありそうですがプラグイン内部でしか動かない。ほかで生きた仕組みが必要かどうか。生きたS2Containerが欲しい?>agtさん。