提取groovy jar
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了提取groovy jar相关的知识,希望对你有一定的参考价值。
我有一个jar文件,其中包含一些类,从那个jar文件我想运行一个特定的类假设A.class
。
在运行时,我在我的代码中添加jar文件并提取其内容。从提取的文件夹中。之后我创建了GroovyClassloader
并将提取的文件夹路径添加到groovy类加载器的类路径中。之后我在groovy classloader的帮助下加载A.class
。直到这个代码我工作正常,但是当我试图创建A.class
的实例时,代码抛出类不是另一个依赖类A.class
的fount异常,即如果A.class
导入B.class
比创建实例的时候A.class
代码抛出未找到的B
类的例外。也许是因为类加载器不同。
任何人都可以建议我如何解决这个问题。
我的代码是:
new UnZip().unZipIt(<groovy/jar/path>,</unzip/dir/path>);
GroovyClassLoader gcl = new GroovyClassLoader();
gcl.addClasspath(<unzip/dir/path>);
Class<?> klass = gcl.loadClass("A");
klass.newInstance();
PS:jar文件很常见,文件在java代码中被提取。
你不需要提取jar。只需将jar添加到类路径:gcl.addClasspath(<groovy/jar/path>);
下面的代码通过url将jar添加到类加载器gcl
中。但是,您可以通过filepath添加它。
GroovyClassLoader gcl = new GroovyClassLoader();
gcl.addClasspath('http://central.maven.org/maven2/commons-io/commons-io/2.6/commons-io-2.6.jar');
Class<?> klass = gcl.loadClass("org.apache.commons.io.output.NullWriter");
def o = klass.newInstance();
println o.getClass()
以上是关于提取groovy jar的主要内容,如果未能解决你的问题,请参考以下文章
Grails 没有从 BuildConfig.groovy 将 jars 添加到类路径
如何在SOAP UI中使用groovy从字符串中提取数字id
无法在 Android Studio 3.3 Beta 2 中下载 groovy-all.jar (org.codehaus.groovy:groovy-all:2.4.15)
在 java 的 pom 中找不到工件 org.codehaus.groovy:groovy-all:jar:2.5.6 [重复]