如何打印Jenkins插件的当前类路径?

时间:2015-06-14 11:33:50

标签: java jenkins classpath classloader

我正在开发一个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

打印Jenkins插件使用的类路径的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

通过Javadoc阅读了AntClassLoader,似乎解决方案比我预期的要容易得多,因此我编写了以下代码,可以使用这些代码打印Jenkins插件的类路径。 / p>

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