我知道这个问题之前已经被问过:
如何使用URLClassLoader加载*.class文件?
但由于缺乏示例,我不太明白。我目前正在开发一个项目,并尝试加载用户给定的 .class 对象,这些对象可以位于计算机上的任何目录中。
//Create URL to hash function class file
URL url_hashFunctionPath = new URL("file:///" + _sHashFunctionFilePath);
//Packet URL to a URL array to be used by URLClassLoader
URL[] urlA_hashFunctionPath = {url_hashFunctionPath};
//Load URL for hash function via a URL class loader
URLClassLoader urlCl_hashFunctionClassLoader = new URLClassLoader(urlA_hashFunctionPath);
//Load user hash function into class to initialize later (TEST: HARD CODE FOR NOW)
m_classUserHashClass = urlCl_hashFunctionClassLoader.loadClass(_sUserHashClassName);
Run Code Online (Sandbox Code Playgroud)
最后一行给了我一个 ClassNotFoundException,根据我的实验&理解用户给定的类函数必须位于类路径中?
PS:第一次发帖,有不懂的地方欢迎指正。
//解决方案
我在 [WillShackleford][1] 的慷慨帮助下得出的解决方案,该解决方案可以在给定的文件路径中加载 .class 文件。有关更多信息,请参阅代码及其给出的注释。
//The absolute file path to …Run Code Online (Sandbox Code Playgroud)