在调试程序解决程序BUG时,我们常要看看所调用的类来自于那一个JAR包。要实现这一目的可以监看如下方法:
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)
)
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)
)
查看这样的信息是很有用的。比如运行的系统中有可能存在有两个JAR包同时含有某一个类,因为JAVA的ClassLoader有先后顺序。你可能发现自己无法怎么改程序,但运行起来却象根本没有改过一样,那么原因可能就出在这里。
另外,还可以用getMethod得到所有的方法,这可以确认你增加的方法是否已经装载到JVM中了
org.jbpm.JbpmConfiguration.class.getMethods()