Eclipse下的Java工程用JavaProject对象获取配置信息(不用读取配置文件)

来源:互联网 发布:php一年工作经验 编辑:程序博客网 时间:2024/06/05 07:14

Eclipse下Java工程导入和导出时经常要用到Java工程路径、源码文件夹路径、class文件路径等配置信息,大致思路是根据工作台对象获取选中工程或者工作空间下所有Java工程,创建JavaProject对象,再通过JavaProject对象相关方法获取配置信息。

获取选中IProject对象:

private void initialize() {
if ((this.selection != null) && (!this.selection.isEmpty())
&& ((this.selection instanceof IStructuredSelection))) {
IStructuredSelection ssel = (IStructuredSelection) this.selection;
if (ssel.size() > 1)
return;
Object obj = ssel.getFirstElement();
if ((obj instanceof IResource)) {
if ((obj instanceof IContainer))
container = (IContainer) obj;
else
container = ((IResource) obj).getParent();
project = container.getProject();
}
updateTree();
}
}

获取工程路径:

project.getLocation().toOSString() ;

获取工程名:

project.getName();

根据IProject对象创建JavaProject对象:

IJavaProject javaProject = JavaCore.create(project);

获取class文件输出路径:对应.classpath文件中配置<classpathentry kind="output" path="build/classes"/>

javaProject.getOutputLocation().toOSString();

遍历工程路径下所有目录:

IPackageFragmentRoot[] roots=javaProject.getAllPackageFragmentRoots();
for(IPackageFragmentRoot root:roots){
//System.out.println("***********"+root.getPath()+"kind="+root.getKind());
if(root.getKind()==1){
String srcPath=root.getPath().toOSString();
map.put(srcPath, classesPath);
}
}

IPackageFragmentRoot.getKind()方法返回值为int类型数值,1代表工程src路径,获取.classpath文件中的配置<classpathentry kind="src" path="ttt"/>,返回值2代表l类型为引用jar包,对应.classpath中的配置<classpathentry kind="lib" path="lib/junit-4.8.2.jar"/>


另外也可以通过解析配置文件.classpath,.project 文件获取Java工程配置信息。

0 0
原创粉丝点击