簡體   English   中英

加載jar文件時找不到Java類

[英]Java class is not found when loading jar file

我正在為程序設計API系統。 該系統轉到“插件”文件夾,並在其中加載每個jar。 我正在嘗試加載“插件”文件夾中的jar文件的主類,但是這樣做時,我得到了ClassNotFoundException。

這是我的代碼:

private static void loadClassFromJar(String PluginJar) throws MalformedURLException, ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException {
    logger.debug("jar:file:" + "./debug/plugins/DiamondCorePlugin.jar!/");
    URL[] urls = { new URL("jar:file:" + FileList.PluginFolder.getAbsolutePath() + PluginJar +"!/") };
    URLClassLoader ClassLoader = URLClassLoader.newInstance(urls);
    Class<?> Class = ClassLoader.loadClass("net.trenterprises.diamondcore.plugin.Main");
    Object Object = Class.newInstance();
    Method EventMethod = Object.getClass().getMethod("onEnable");
    EventMethod.invoke(Object);
}

如果問題不清楚或不清楚,請告訴我(我在這里是新來的,所以我會盡力說出我要問的任何問題)。

編輯:忘記包括堆棧跟蹤。 這里是!

java.lang.ClassNotFoundException: net.trenterprises.diamondcore.plugin.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:798)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at net.trenterprises.diamondcore.cross.api.PluginLoader.loadClassFromJar(PluginLoader.java:53)
at net.trenterprises.diamondcore.cross.api.PluginLoader.loadAllPlugins(PluginLoader.java:25)
at net.trenterprises.diamondcore.DiamondCoreServer.<init>(DiamondCoreServer.java:47)
at net.trenterprises.diamondcore.run.main(run.java:15)

jar不包含請求的類(使用zip工具或jar -tf DiamondCorePlugin.jar ,或者jar-URL不正確(它似乎指向jar中的資源,而不是jar本身)。您可以像下面這樣輕松創建它:

File file = new File("debug/plugins/DiamondCorePlugin.jar");
URL[] urls = { file.getAbsoluteFile().toURI().toURL() };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM