2017-04-10 24 views
3

有什麼方法可以判斷一個類是否已經加載到jvm中? 在我看來,我認爲的方式是findClass,是嗎?有什麼方法可以判斷一個類是否已經加載到jvm中?

+0

這取決於你的要求是什麼。它是在什麼時候通過字節碼進行搜索,因此具有'.class'對象或初始化時? –

+0

可能是它被加載,然後被刪除。所以我認爲我不能從對象類,如aop機制判斷。 – flower

+3

真正的問題可能是:你爲什麼認爲這很重要?換句話說:你打算通過做這樣的判斷來解決什麼問題? – GhostCat

回答

1

好的,所以我沒有這樣做。但它似乎可以通過getAllLoadedClasses()Instrumentation API

但是,您仍然需要使用agent啓動JVM。

+0

根據JVM,您可以在啓動後動態加載代理,例如通過Attach API。在[這個答案](http://stackoverflow.com/a/19912148/2711488)的結尾是一個示例程序,它附加到它自己的JVM上,以加載它自己作爲代理來最終獲得'Instrumentation' API。 – Holger

0

-verbose:class開啓類加載器日誌並讀取日誌。

+1

如果您已經啓動了JVM並且此刻正在運行,該怎麼辦? – Eugene

0

您可以使用jdk工具,例如JConsole。

相關問題