我知道这里已经有很多类似的问题,但我无法从他们那里得到更聪明的答案。我想在 jar 文件中加载一个类,此时这没问题,但是当我想将路径传递给我自己的 ClassLoader 时,它会抛出一个异常,它找不到该类。是否可以使用绝对路径在 jar 中加载类?例如,Class cls = loader.loadClass(/path/MyPlugin.jar/MyPlugin.class);
但是当我这样做时:
File test = new File("path/plugins/MyPlugin.jar/MyPlugin.class");
System.out.println(test.exists());
它打印出错误的。我尝试使用MyPlugin.jar!/MyPlugin.class
或者MyPlugin.jar.jar!MyPlugin.class
我有时在网上看到的,即使我真的不知道它是什么意思......
当我这样做时,它会找到类:
URLClassLoader loader = new URLClassLoader(new URL[] { "path/plugins/MyPlugin.jar" });
Class cl = loader.loadClass("MyPlugin");
但是现在,我怎样才能接收到路径?类似的东西URL url = cl.getResource("MyPlugin");
(它返回一个空值)