我想使用 URLClassLoader 加载 Java 类并调用 main 方法。下面的代码在最后一行给出了一个错误,我不知道如何修复它。
(def classloader (URLClassLoader. (into-array files))) (定义类名“example.Test”) (def clazz (.. classloader (loadClass classname))) ; 我认为不是获取方法“main”的最有效方法 ; 额外的反馈表示赞赏 (def 方法 (first (filter #(= (. % getName) "main") (.clazz getMethods)))) (def args (make-array String 1)) ; 为方法 main(String[]args) 指定单个命令行参数 (aset args 0 "我的文件") ; 尝试使用 Java 反射 API 调用静态方法失败。 (.方法调用 nil args)
线程“主”java.lang.IllegalArgumentException 中的异常: 参数类型不匹配,编译:
请注意,该类在默认类加载器中不可用,因此
(example.Test/main“我的文件”)
会失败。
谢谢你,帕维尔