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

发布于 2022-09-01 23:44:34 字数 342 浏览 11 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妞丶爷亲个 2022-09-08 23:44:34

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

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

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

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文