我認爲我的問題是不言自明的。確定我使用的JVM使用多個類加載器的最快和最準確的方法是什麼?如果確實如此,必須注意確保程序正確運行?如何檢測我運行的JVM是否使用多個類加載器?
編輯: 我想我需要澄清兩個類加載器,他們可以加載相同的類嗎?如果只有一個實例需要單獨類的類,我們如何防止它發生?
我認爲我的問題是不言自明的。確定我使用的JVM使用多個類加載器的最快和最準確的方法是什麼?如果確實如此,必須注意確保程序正確運行?如何檢測我運行的JVM是否使用多個類加載器?
編輯: 我想我需要澄清兩個類加載器,他們可以加載相同的類嗎?如果只有一個實例需要單獨類的類,我們如何防止它發生?
必須注意確保程序正確運行?
對於類,沒有我所知道的。對於其他應用程序資源(圖像,幫助文件等),請使用上下文類加載器。
我正在努力解決這個問題。
每個JVM一直運行着多個類加載器:至少是系統類加載器,擴展類加載器和應用程序類加載器。 OSGi等。可以添加許多,更多。
我很努力的在這裏看到任何問題 - 類加載器的全部重點是隔離命名空間。
每個JVM使用多個類加載器。
java -XX:+ TraceClassLoading -version 2> & 1 |剪下-d''-f2 | grep的類加載器
打印
java.lang.ClassLoader
sun.reflect.DelegatingClassLoader
java.lang.ClassLoader$3
java.lang.ClassLoader$NativeLibrary
java.security.SecureClassLoader
java.net.URLClassLoader
sun.misc.Launcher$ExtClassLoader
java.lang.ClassLoader$ParallelLoaders
java.net.URLClassLoader$7
sun.misc.Launcher$ExtClassLoader$1
sun.misc.Launcher$AppClassLoader
sun.misc.Launcher$AppClassLoader$1
java.lang.SystemClassLoaderAction
有些是內部類和一些相互延伸,但有一個以上的類加載器來乍到,我所做的就是索要JVM版本。