java 中的自定义 ClassLoader,用于从 hdfs 加载 jar

Custom ClassLoader in java for loading jar from hdfs

我想在我的程序中使用自定义 java URL ClassLoader 从 HDFS 加载一个 jar。 我无法在互联网上找到示例。我已经看到从本地文件系统加载 jar 的示例,如以下线程中所述:

Custom URLClassLoader

任何建议或工作示例?

谢谢。

这就是您编写自定义 class 加载程序的方法。代码是用 scala 编写的。你可以把它转换成 java .

class HdfsClassLoaderclassLoader(classLoader: ClassLoader) extends URLClassLoader(Array.ofDim[URL](0), classLoader) {

    def addJarToClasspath(jarName: String) {
        synchronized {
            var conf = new Configuration
            val fileSystem = FileSystem.get(conf)
            val path = new Path(jarName);
            if (!fileSystem.exists(path)) {
                println("File does not exists")
            }
            val uriPath = path.toUri()
            val urlPath = uriPath.toURL()
            println(urlPath.getFile)
            addURL(urlPath)
        }
    }
}