簡體   English   中英

在Eclipse中動態加載Soot的Java類文件

[英]Loading Java class files for Soot dynamically in Eclipse

我目前正在開發一個程序,該程序將兩個控件-流程圖相互比較(這些圖表是用Soot生成的)。 這些圖屬於兩個不同的類別。 因此每一個CFG。

目前,我正在使用以下方法加載類:

   SootClass sClassNew = Scene.v().loadClassAndSupport("Calc");     
   sClassNew.setApplicationClass();

   SootClass sClassOld = Scene.v().loadClassAndSupport("Calc2");        
   sClassOld.setApplicationClass()

如果我通過在項目上單擊鼠標右鍵來添加包含Calc.java和Calc2.java類的文件夾,則此方法有效。 Java構建路徑 添加外部類文件夾| 選擇文件夾。

不幸的是,這並不是我想要的,因為:

  1. 這兩個類的名稱相同,因為它們是彼此不同的版本。 換句話說,一個類是另一個的更新版本。
  2. 執行該程序時,我希望使用戶能夠選擇文件,以便構建cfg。 因此,我必須消除上述步驟,以便添加類,並且需要一種在運行時添加它們的方法。

一個重要的注意事項是,Soot只會從Soot的類路徑中找到的JAR文件和目錄中加載文件。 有誰知道我如何解決這兩個問題?

煤煙並未真正解決這個問題。 它的主要數據結構是Scene,在其中包含其所要說明的所有類,並且每個類名只能包含一個類實例,而該場景不能有兩個不同的版本。

話雖如此,我們最近已經建立了一個名為Reviser的Soot擴展(目前正在提交中): https : //github.com/StevenArzt/reviser Reviser逐步更新程序的過程間控制流程圖和IFDS / IDE分析信息。 。 為了使這項工作奏效,我們不得不反復研究Soot的類加載機制。 這絕非易事。 如果您對這些細節感興趣,請發送個人郵件給Steven Arzt和我本人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM