5

どのようにして.javaファイルをCompilationUnitにロードできますか?たとえば、現在のプロジェクトにA.javaファイルがあるとします。 CompilationUnitにロードしてASTParserに渡したいと思います。その場合、私はASTのバインディング情報を取得しないと思われるので、プレーンテキストとしてロードするだけの選択肢ではありません。Eclipseは.javaファイルからCompilationUnitを作成します

答えて

9

jdteclipse coreライブラリを使用してプロジェクトを読み込むことができます。

次のコードを使用すると、ワークスペース内のすべてのプロジェクトを読み込むことができます。

IWorkspace workspace = ResourcesPlugin.getWorkspace(); 
IWorkspaceRoot root = workspace.getRoot(); 
// Get all projects in the workspace 
IProject[] projects = root.getProjects(); 

次にパッケージとjavaファイルを取得できます。

IPackageFragment[] packages = JavaCore.create(project).getPackageFragments(); 
IPackageFragment mypackage = packages.get(0); // implement your own logic to select package 
ICompilationUnit unit = mypackage.getCompilationUnits(); 

次にあなたがこのCompilationUnitオブジェクトはASTParserに渡すことができCompilationUnit

​​

を取得するため、このICompilationUnitオブジェクトを使用することができます。

+0

これはEclipseプロジェクトでのみ機能しますか?つまり、Javaプロジェクトではうまくいかないでしょうか? – bellpeace

+0

jarファイルを持つことで、JavaプロジェクトでJDTを使用することはできません。 JDTを使用するには、プログラムをプラグイン(または少なくともOSGi対応アプリケーション)として実行する必要があります。 –

+0

これで、Eclipseプロジェクトの場合のみ、この方法で.javaファイルをCompilationUnitに読み込むことができます。 FYIでは、setSource(char [])とsetEnvironmentメソッドを使用して、Eclipseプロジェクトの外でJDTを使用することができます。 (バージョン3.6より) – bellpeace

関連する問題