您的位置:首页 > 编程语言 > Java开发

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

2014-06-29 13:30 471 查看
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工程配置信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  eclipse 插件