我无法在gradle脚本中加载类。当我运行此代码时:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath( group:"xerces", name:'xercesImpl', version:'2.9.1')
}
}
task hello {
doLast {
println 'Hello world!'
Class testClass = Class.forName("org.apache.xerces.jaxp.DocumentBuilderFactoryImpl")
assert testClass: "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found"
println "found"
}
}
当我运行“gradle hello”时,我得到了这个: java.lang.ClassNotFoundException:org.apache.xerces.jaxp.DocumentBuilderFactoryImpl“
我怀疑Jaxp的实现问题,但对jaxp的工作原理并不了解。
感谢您的帮助
答案 0 :(得分:0)
这样的事情就足够了吗?
import org.apache.xerces.jaxp.DocumentBuilderFactoryImpl;
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath group:"xerces", name:'xercesImpl', version:'2.9.1'
}
}
task hello {
println 'Hello world!'
DocumentBuilderFactoryImpl obj = new DocumentBuilderFactoryImpl()
// do something with obj
}
答案 1 :(得分:0)
请尝试使用getClass().getClassLoader()
。 Class.forName()
根本不应该使用;当从Java调用时它已经知道了问题,并且从Groovy调用时完全不可靠(你通常会得到Groovy库的类加载器而不是调用者的类加载器)。