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

问题描述

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。问什么?要怎么做?

解决方案

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

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

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

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

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

解决方案二:

http://www.oschina.net/code/snippet_617922_52528

时间: 2025-01-02 12:40:35

对象-eclipse插件开发 如何取得一个项目的java文件对应的IClassFile的相关文章

tomcat-myeclipse2015引用另一个项目的xml文件失败

问题描述 myeclipse2015引用另一个项目的xml文件失败 我有两个项目:admin项目和index项目,通过步骤:右键工程>Properties>MyEclipse>Deployment Assembly将admin项目添加到了index项目下.我将hibernate的所有的xml配置文件写在admin项目下的,在index的application.xml文件中引用admin下面的关于hibernate的xml文件后,启动tomcat时报异常:找不到xml文件.编译时通过了的.

.gitignore详解(附上eclipse的java项目的 .gitignore文件)

今天讲讲Git中非常重要的一个文件――.gitignore. 首先要强调一点,这个文件的完整文件名就是".gitignore",注意最前面有个".".这样没有扩展名的文件在Windows下不太好创建,这里给出win7的创建方法: 创建一个文件,文件名为:".gitignore.",注意前后都有一个点.保存之后系统会自动重命名为".gitignore". 一般来说每个Git项目中都需要一个".gitignore&quo

《Android应用开发攻略》——1.9 共享来自其他Eclipse项目的Java类

1.9 共享来自其他Eclipse项目的Java类 Ian Darwin1.9.1 问题 你希望使用来自另一个项目的类,但是不希望复制和粘贴.1.9.2 解决方案 添加一个"引用项目",Eclipse(和DEX)将完成这一工作.1.9.3 讨论 你往往需要重用来自另一个项目的类.在我的GPS跟踪程序JPSTrack中,Android版本从Java SE版本中借用文件I/O模块等类.你肯定不愿意从一个项目中向另一个项目胡乱地复制和粘贴类,因为这样将无法维护. 在最简单的情况下,当程序库项

怎么将eclipse3.2中的项目的class文件编译到tomcat的webapps下?

问题描述 怎么将eclipse3.2中的项目的class文件编译到tomcat的webapps下的某个项目里? 解决方案 http://zhidao.baidu.com/question/120557710看完就明白了!解决方案二:确保你这个class文件的包名和你tomcat下的工程的对应的包名一致,放进去试试.

android项目出错-求助,为什么android项目的xml文件的webview标签的android id报错

问题描述 求助,为什么android项目的xml文件的webview标签的android id报错 求助,为什么android项目的xml文件的webview标签的android id报错 解决方案 报什么错,是不是id重复了 解决方案二: 贴出页面可好.凑足十个字 解决方案三: 我感觉你的id重复了,你看看红字是不是两行

eclipse 查找功能-如何在eclipse中 按一定的条件查找java文件?

问题描述 如何在eclipse中 按一定的条件查找java文件? 我想在eclipse使用查找java文件的功能,具体的操作如下: 希望在包名符合 *.controller的包中查找 含有event字符的java文件,该如何操作? thank you in advance! 解决方案 ctrl+H 然后用正则

09_Android中ContentProvider和Sqllite混合操作,一个项目调用另外一个项目的ContentProvider

1.  编写ContentPrivider提供者的Android应用 清单文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.itheima28.sqlitedemo"     android:version

如何调用一个解决方案内的另一个项目的类!!!

问题描述 如题,请大神讲解一下,没有搜到,有什么要求之类的??? 解决方案 解决方案二:引用dll,,,解决方案三:确保那个类前面加了public,然后引用那个项目既可.如果你仅仅希望两个项目共享源代码,那么你可以使用代码链接功能.方法是,在一个项目中创建一个源代码,在另一个项目中选择添加-现有类,在打开对话框中不要直接点确定,而是点确定旁边的下拉,选择以链接方式打开.这样,两个项目共享了相同的代码,你修改一处即可.编译后两个程序没有任何依赖关系.解决方案四:有源代码就添加现有类:没有就引用dl

.net项目中如何运行另外一个项目的aspx页面程序,且不在前端显示

问题描述 我的代码:Page.RegisterStartupScript("","<script>window.open('http://116.246.14.35/xxxxx/order.aspx')</script>");我在项目中要调用服务器上发布的页面,执行某个操作(insert数据),但是,页面会弹出来,如何不让弹出,且执行操作? 解决方案 解决方案二:为啥要这么做,不太理解你的意思!要调用一个页面insert,可以用ashx来做啊