經過谷歌我確實無法找到如何使用Thread.getContextClassLoader()的例子後,在哪裏我們會使用Thread.getContextClassLoader()和ClassLoader.getSystemClassLoader()就可以了嗎?
也許這個問題是重複的,如下 Difference between thread's context class loader and normal classloader
我的問題是如下概括: 據我所知使用Thread.getContextLoader的場景,包含在/lib/rt.jar中的JNDI核心類 但是那些JNDI Core(也許它們只是一些接口)沒有實現bean,在其他作品中如果你想使用JNDI的函數,你必須提供 JNDI的實現,然後我們將那些實現(可能是罐子)放入系統類路徑中, 但是現在覈心JDNI類是由Bootstrap加載的,而這些核心類必須使用它的實現類, 好吧,我們提供一個Thread.getContextClassLoader()(如果您沒有任何操作,則默認爲ClassLoader.getSystemClassLoader()),它可以加載那些現在, 我只是假設爲什麼核心JNDI類使用這種方式直接獲取systemClassLoader的ClassLoader.getSystemClassLoader()?
也許有些點我解釋不正確..
< 1>,但我只是想了解,如果我們可以用 ClassLoader.getSystemClassLoader()instand Thread.getClassLoader() 來裝載系統類路徑類或資源類 由bootstrap類加載器加載?
使用'getContextClassLoader'你想讓你的程序弄得亂七八糟。 – 2012-03-15 14:37:08