Eclipseのプラグイン開発のJDTのIJavaProjectについて。
|
|
IJavaProjectは、Javaプロジェクト(ワークスペース上で小さな「J」が付いているプロジェクト)を表すインターフェース。
IProjectからIJavaProjectを取得する方法。
import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.JavaCore;
IProject project = 〜; IJavaProject javaProject = JavaCore.create(project); if (javaProject == null) { // Javaプロジェクトではない }
メソッド名がcreate()になっていることから分かるように、IJavaProjectオブジェクトのインスタンス自体は呼び出す度に作られる。
Javaプロジェクトのビルドパス(クラスパス)の一覧を取得する例。[2013-02-11]
IJavaProject = 〜; IClasspathEntry[] entries = project.getRawClasspath(); for (IClasspathEntry ce : entries) { IClasspathEntry resoleved = JavaCore.getResolvedClasspathEntry(ce); IPath path = resoleved.getPath(); File file = path.toFile(); 〜 }
getRawClasspath()で取れるIClasspathEntryは、内部で管理しているパスで表現されている。
これを実際のファイルシステム上で使えるパスに変換するのがJavaCore.getResolvedClasspathEntry()。
ソースフォルダー | raw | /project1/src |
---|---|---|
resolved | /project1/src | |
JRE | raw | org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6 |
resolved | org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6 | |
変数指定の jarファイル |
raw | M2_REPO/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar |
resolved | C:\Users\hishidama\.m2\repository\org\slf4j\slf4j-api\1.6.6\slf4j-api-1.6.6.jar |