做了一個Eclipse插件,操作一個java項目,我可以獲得src中的java文件(鼠標(biāo)選中)的IFile對象,但是無法獲得它對應(yīng)的bin中的Class文件的IClassFile對象。理論上,我認(rèn)為很容易實現(xiàn),但是現(xiàn)實終究不如人意,網(wǎng)上找了很多,都沒有答案(英文網(wǎng)站也搜過,也可能是我查的方法不對),誰能給我點幫助,謝謝。PS:對于lib里的jar文件中的類,通過IJavaProject.findType(類全名)方法可以獲得對應(yīng)類的IType,然后通過IType的getClassFile方法,可以獲得IClassFile對象。但是對于src(或bin)中的東西不行,只能獲得IType,而getClassFile方法得到的結(jié)果是NULL。為什么?要怎么做?
1 回答

喵喔喔
TA貢獻1735條經(jīng)驗 獲得超5個贊
不知道是我沒說明白,還是大家都不會,或者不屑回答,連點建議都沒收到
認(rèn)真看過我問題的都謝過,這個問題我自己已經(jīng)解決(解決方法不知道是否簡單,但算正規(guī)吧)。
首先說下原因,這個問題大體是因為classpath(IClassEntry[])中沒有bin目錄(跟想象的不一樣啊,只有src目錄),所以只能訪問src中java文件,而遮蔽了對應(yīng)的class文件(個人想法)。
所以,要想訪問bin下的class文件,取得IClassFile對象,必須把bin目錄加入到Classpath中。我的做法是,通過副本,把classpath的src目錄換成bin目錄,然后使用修改后的副本的就可以了。
ps:修改classpath的動作必須針對副本,不然無效,并且這種操作對項目本身的classpath(buildpath)會有實質(zhì)改動。
添加回答
舉報
0/150
提交
取消