![](/img/trans.png)
[英]load class not in classpath dynamically in web application - without using custom classloader
[英]How to load a class dynamically using classLoader
我的光盤中有一個.class文件。 我想使用javaassist將其動態加載到jvm上。 但它拋出異常。 以下是我編寫的代碼:
ClassPath cp=new ClassClassPath(ExampleImpl.class);
System.out.println(cp.find(ExampleImpl.class.getName()));
System.out.println("ExampleImpl.java");
System.out.println(ExampleImpl.class.getName());
System.out.println();
CtClass ctClasz = pool.get("***D:\\ExampleImpl***");
ctClasz.addInterface(pool.get(MyInterface.class.getName()));
D:驅動器上有一個.class文件,evn引發以下異常:
Exception in thread "main" javassist.NotFoundException: D:\ExampleImpl
at javassist.ClassPool.get(ClassPool.java:436)
at javaassist.Demo.main(Demo.java:24)
如何將光盤上的.class文件動態加載到jvm上並執行它?
這是沒有Eclipse的東西,我認為這應該可以工作(稍作修改)
Class<?> clazz;
try {
clazz = Demo.class.getClassLoader().loadClass("full.package.name.to.MyClass");
} catch (ClassNotFoundException e) {
System.out.println("No such class.");
return;
}
MyInterface worker;
try {
worker = (MyInterface)clazz.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
System.out.println("Error creating actual implementation.");
return;
}
確實是一個很棒的教程。 謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.