在調(diào)試程序解決程序BUG時(shí),我們常要看看所調(diào)用的類來自于那一個(gè)JAR包。要實(shí)現(xiàn)這一目的可以監(jiān)看如下方法:
org.jbpm.JbpmConfiguration.
class
.getProtectionDomain()
從下面的信息可以清楚看到JbpmConfiguration類來自于D:/jbpm-starters-kit-3.1/jbpm/build/jbpm-3.1.jar:
ProtectionDomain??(file:
/
D:
/
jbpm
-
starters
-
kit
-
3.1
/
jbpm
/
build
/
jbpm
-
3.1
.jar?
<
no?signer?certificates
>
)
?sun.misc.Launcher$AppClassLoader@7259da
?
<
no?principals
>
?java.security.Permissions@17ba38f?(
?(java.io.FilePermission?\D:\jbpm
-
starters
-
kit
-
3.1
\jbpm\build\jbpm
-
3.1
.jar?read)
?(java.lang.RuntimePermission?exitVM)
)
查看這樣的信息是很有用的。比如運(yùn)行的系統(tǒng)中有可能存在有兩個(gè)JAR包同時(shí)含有某一個(gè)類,因?yàn)镴AVA的ClassLoader有先后順序。你可能發(fā)現(xiàn)自己無法怎么改程序,但運(yùn)行起來卻象根本沒有改過一樣,那么原因可能就出在這里。
另外,還可以用getMethod得到所有的方法,這可以確認(rèn)你增加的方法是否已經(jīng)裝載到JVM中了
org.jbpm.JbpmConfiguration.class.getMethods()