【发布时间】:2015-10-23 13:07:26
【问题描述】:
我在运行时在文件系统上编译了一个 java 文件,这是一个非常简单的类:
public class Test {
public static int res(int a, int b) {
return a*b;
}
}
现在我只想从我的项目中调用 res 方法(这将是一个 jar),但我的代码产生了 java.lang.ClassNotFoundException: Test
这就是我加载课程的方式:
URL[] urls = new URL[] {new URL("file:///"+UtilOverriding.getFile1().replace("java", "class"))};
URLClassLoader loader = new URLClassLoader(urls);
Class clazz = loader.loadClass("Test");
【问题讨论】:
-
您似乎将 .java 扩展名替换为 .class 扩展名。严重的是,这不是 java 编译。java 类是由 java 编译器编译的字节码
-
@KumarAbhinav 我知道谢谢,事实上你提到的是类加载而不是 java 文件编译(我在那段代码之前所做的操作)
-
我需要在 .jar 中加载 .class 而不是 .class
标签: java reflection urlclassloader