为了账号安全,请及时绑定邮箱和手机立即绑定

eclipse插件开发 如何取得一个项目的java文件对应的IClassFile

eclipse插件开发 如何取得一个项目的java文件对应的IClassFile

肥皂起泡泡 2019-03-14 10:15:18
做了一个Eclipse插件,操作一个java项目,我可以获得src中的java文件(鼠标选中)的IFile对象,但是无法获得它对应的bin中的Class文件的IClassFile对象。理论上,我认为很容易实现,但是现实终究不如人意,网上找了很多,都没有答案(英文网站也搜过,也可能是我查的方法不对),谁能给我点帮助,谢谢。PS:对于lib里的jar文件中的类,通过IJavaProject.findType(类全名)方法可以获得对应类的IType,然后通过IType的getClassFile方法,可以获得IClassFile对象。但是对于src(或bin)中的东西不行,只能获得IType,而getClassFile方法得到的结果是NULL。为什么?要怎么做?
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

不知道是我没说明白,还是大家都不会,或者不屑回答,连点建议都没收到

认真看过我问题的都谢过,这个问题我自己已经解决(解决方法不知道是否简单,但算正规吧)。

首先说下原因,这个问题大体是因为classpath(IClassEntry[])中没有bin目录(跟想象的不一样啊,只有src目录),所以只能访问src中java文件,而遮蔽了对应的class文件(个人想法)。

所以,要想访问bin下的class文件,取得IClassFile对象,必须把bin目录加入到Classpath中。我的做法是,通过副本,把classpath的src目录换成bin目录,然后使用修改后的副本的就可以了。

ps:修改classpath的动作必须针对副本,不然无效,并且这种操作对项目本身的classpath(buildpath)会有实质改动。


查看完整回答
反对 回复 2019-04-16
  • 1 回答
  • 0 关注
  • 629 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信