簡體   English   中英

獲取Java類加載參考層次結構

[英]Obtain Java class loading references hierarchy

在調試Spring驅動的AspectJ LTW時(使用-verbose:class),我注意到在Spring建立與AspectJ編織器的連接之前,建議使用的類之一是由類加載器加載的。

考慮到Java將類的加載推遲到不可能再延遲之前,一定有一個原因為什么要盡快加載該特定類。

是否有可能獲得“引用堆棧”,該“引用堆棧”在特定時刻引發將類加載到JVM(因此我可以嘗試推遲其使用)? 如果是這樣,我該怎么辦?

正如您已經提到的,Java(或實際上是運行您的代碼的VM)會在需要時加載並解析類。 通常,這還會導致多個類別的連鎖反應。 顯然,很有可能將不包含編織代碼的類加載到Spring類之前。

但是,可以在啟動時以多種方式配置 Java HotSpot VM(典型的VM,在安裝Oracle的Java時)。 這些選項之一是“ -XX:+ TraceClassLoading” (請注意加號;不幸的是,上述鏈接記錄了此選項的減號)。 還有另一個選項,可以按引用順序跟蹤已加載的類。

這樣,您應該可以縮小問題的范圍。 如果沒有,一些示例代碼可能會有所幫助。 盡管我擔心,但這會太大。

暫無
暫無

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

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