2012-07-25 31 views
1

我認爲我的問題是不言自明的。確定我使用的JVM使用多個類加載器的最快和最準確的方法是什麼?如果確實如此,必須注意確保程序正確運行?如何檢測我運行的JVM是否使用多個類加載器?

編輯: 我想我需要澄清兩個類加載器,他們可以加載相同的類嗎?如果只有一個實例需要單獨類的類,我們如何防止它發生?

回答

2

必須注意確保程序正確運行?

對於類,沒有我所知道的。對於其他應用程序資源(圖像,幫助文件等),請使用上下文類加載器。

1

我正在努力解決這個問題。

每個JVM一直運行着多個類加載器:至少是系統類加載器,擴展類加載器和應用程序類加載器。 OSGi等。可以添加許多,更多。

我很努力的在這裏看到任何問題 - 類加載器的全部重點是隔離命名空間。

1

每個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版本。

相關問題