小编Las*_*ast的帖子

使用 URLClassLoader 加载 .class 文件

我知道这个问题之前已经被问过:

如何使用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)

java urlclassloader dynamic-class-loaders

4
推荐指数
1
解决办法
7772
查看次数