Tia*_*dez 3 java groovy classpath classloader groovyclassloader
假设我使用Groovyc编译了一个Groovy脚本,它在文件系统中生成了一个或多个.class文件.从Java应用程序中,如何动态地将这些类添加到类路径中以加载它们并调用它们的方法?目标是预编译Groovy脚本并将它们存储到数据库中,因此可以从脚本的编译版本执行评估.
sam*_*aur 10
您可以创建URLClassLoader的实例以从目录加载新类:
URL dirUrl = new URL("file:/" + "path_to_dir" + "/"); // 1
URLClassLoader cl = new URLClassLoader(new URL[] {dirUrl},
getClass().class.getClassLoader()); // 2
Class loadedClass = cl.loadClass("com.xyz.MyClass");
MyClass obj = (MyClass) loadedClass.newInstance();
obj.doSomething();
Run Code Online (Sandbox Code Playgroud)
第1行创建URL.class文件所在的目录.
第2行创建一个新URLClassLoader实例.第一个参数是要用作源的URL数组.您可以在阵列中指定多个目录URL.第二个参数是将成为这个新类加载器的父类的类加载器.我们传递执行上面代码的类的类加载器作为此参数.
子类加载器加载的类可以访问父类加载器加载的类.
| 归档时间: |
|
| 查看次数: |
3748 次 |
| 最近记录: |