eclipse插件开发 如何取得一个项目的java文件对应的IClassFile
做了一个Eclipse插件,操作一个java项目,我可以获得src中的java文件(鼠标选中)的IFile对象,但是无法获得它对应的bin中的Class文件的IClassFile对象。理论上,我认为很容易实现,但是现实终究不如人意,网上找了很多,都没有答案(英文网站也搜过,也可能是我查的方法不对),谁能给我点帮助,谢谢。
PS:对于lib里的jar文件中的类,通过IJavaProject.findType(类全名)方法可以获得对应类的IType,然后通过IType的getClassFile方法,可以获得IClassFile对象。但是对于src(或bin)中的东西不行,只能获得IType,而getClassFile方法得到的结果是NULL。为什么?要怎么做?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不知道是我没说明白,还是大家都不会,或者不屑回答,连点建议都没收到
认真看过我问题的都谢过,这个问题我自己已经解决(解决方法不知道是否简单,但算正规吧)。
首先说下原因,这个问题大体是因为classpath(IClassEntry[])中没有bin目录(跟想象的不一样啊,只有src目录),所以只能访问src中java文件,而遮蔽了对应的class文件(个人想法)。
所以,要想访问bin下的class文件,取得IClassFile对象,必须把bin目录加入到Classpath中。我的做法是,通过副本,把classpath的src目录换成bin目录,然后使用修改后的副本的就可以了。
ps:修改classpath的动作必须针对副本,不然无效,并且这种操作对项目本身的classpath(buildpath)会有实质改动。