2015-06-14 23 views
0

我正在开发一个Jenkins插件,但我遇到了一些问题,我认为这可能是由于插件的类路径中缺少一个jar,即使它在插件的WEB-INF/lib目录中。如何打印詹金斯插件的当前类路径?

通常我会在Java中使用下面的代码来打印类路径,但这似乎不适用于Jenkins。

ClassLoader cl = getClass().getClassLoader(); 
URL[] urls = ((URLClassLoader)cl).getURLs(); 
for(URL url: urls){ 
    System.out.println(url.getFile()); 
} 

当我执行的插件上面的代码导致ClassCastException异常与消息hudson.ClassicPluginStrategy$AntClassLoader2 cannot be cast to java.net.URLClassLoader

什么是打印正由詹金斯插件类路径的最佳方法抛出?

回答

1

阅读完Javadoc的AntClassLoader之后,似乎解决方案比我期待的要容易得多,所以我写了下面的代码,可以使用下面的代码打印Jenkins插件的类路径。

AntClassLoader cl = (AntClassLoader) getClass().getClassLoader(); 
String[] classpath = cl.getClasspath().split(":"); 
for (String classpathElement : classpath) { 
    System.out.println(classpathElement); 
}