2012-02-13 95 views
0

當我試圖用菸灰產生調用圖。但是,當我傳遞一些要分析的類時,拋出異常NoClassDefFoundError。我使用的是以下兩個教程能夠執行一些命令: http://www.brics.dk/SootGuide/sootsurvivorsguide.pdfhttp://www.bodden.de/2008/08/21/soot-command-line/#obtainingNoClassDefFoundError的例外嘗試使用SOOT

我已經把Java源代碼在菸灰的相同類路徑進行分析。所以當我即將執行時,我使用了「。」指定當前目錄。以下是我執行命令:

java -cp jasminclasses-2.5.0.jar:sootclasses-2.5.0.jar:plyglot-1.3.5.jar:.soot.Main -cp . MainFrame 

即使我離開了-cp,只是立即撥打大型機產生同樣的錯誤。

沒有人知道爲什麼這種異常被拋出?

+0

請添加找不到的類的全名。 – kornero 2012-02-13 10:11:15

+0

線程「main」中的異常java.lang.NoCLassDefFOundError:MainFrame 引起:java.lang.ClassNotFoundException:MainFrame 我假設錯誤是由於MainFrame本身而產生的,而不是因爲soot.Main產生了一些因爲錯誤。 – ict1991 2012-02-13 10:18:03

+0

您是否嘗試使用相對的完整路徑intead? – kornero 2012-02-13 10:25:01

回答

0

第一類路徑字符串看起來奇怪,你居然不調用soot.Main類。試試這個:

java -cp jasminclasses-2.5.0.jar:sootclasses-2.5.0.jar:plyglot-1.3.5.jar soot.Main -cp . MainFrame 

編輯

關於你的最後一個評論,它看起來像一個典型的類路徑錯誤。

如果執行從上面的問題行,爪哇試圖啓動類MainFrame(默認包)的main方法 - 並不能找到這個類。用我的(正確的!)命令,java試圖找到soot.Main

再次仔細檢查你的classpath:你必須提供給圖書館正確的路徑。實際的命令期望,所有三個庫加上MainFrame.class都在當前目錄中。

+0

我試過這種形式的輸入,在這種情況下,它給了我一個NoClassDefFoundError的菸灰/主....當我使用我發佈的一個我甚至設法得到幫助內容和版本的詳細信息,所以我猜這不是什麼一直在產生的問題 – ict1991 2012-02-13 10:22:57

+0

*什麼*類未找到,'soot.Main'或分析的類? – 2012-02-13 10:37:06

+0

如果我在命令行中放置指定的命令,則生成的錯誤將命名爲soot.Main類。然而,當我使用我所說的命令時,會產生一個關於被分析的類的錯誤......所以在這種情況下,soot.Main並不會產生一個我認爲是錯誤的錯誤 – ict1991 2012-02-13 10:43:52