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 |