我想编写一个程序来动态调用另一个 Java 类(未编译)中的方法,该类的文件名和位置已给出。为此,我使用了以下代码,但它不起作用。
//folder location of my java file to be loaded
String url = "C:/Temp/testcases/test.java";
//name of the java file to be loaded
String classname = "test.java";
this.class.classLoader.rootLoader.addURL(new URL(url+str));
Class.forName(str).newInstance();
上面的实例无法调用我想动态加载的java文件中的方法。它有什么错误?
最佳答案
类加载器只能加载已编译的类。它不能打开 Java 源文件,即时编译它们,并加载它们的类。
此外,类名与文件名不同。
关于实例化另一个java文件的java代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5219322/