如何从另一个包加载类?

时间:2015-09-01 04:28:53

标签: java

我想从另一个包加载类(运算符是包名)。我使用这个语句:

File operatorFile = new File(operatorPath);
URL operatorFilePath = operatorFile.toURL();          
URL[] operatorFilePaths = new URL[]{operatorFilePath};
ClassLoader operatorsLoader = new URLClassLoader(operatorFilePaths);

Class operatorInterface = operatorsLoader.loadClass("operators.Operator");

但是在运行时我遇到了这个例外:

enter image description here

我不知道我打电话的方式不正确或其他问题我的代码是否存在。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

File operatorFile = new File(operatorPath);

这已经错了。应使用位于包结构顶部的目录初始化File。在这种情况下,operatorPath/..,假设operatorPath"operators"

URL operatorFilePath = operatorFile.toURL();          
URL[] operatorFilePaths = new URL[]{operatorFilePath};
ClassLoader operatorsLoader = new URLClassLoader(operatorFilePaths);

Class operatorInterface = operatorsLoader.loadClass("operators.Operator");

应该从那里开始工作。