亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何加載不在類路徑中且在 jar 中的類?

如何加載不在類路徑中且在 jar 中的類?

慕斯王 2022-12-28 16:08:06
我想加載一個在罐子里的類。我已經嘗試使用此代碼加載類:URL dirUrl = jarFile.toURL();URLClassLoader ucl = new URLClassLoader(new URL[] {dirUrl}, getClass().getClassLoader());Class<?> clazz = ucl.loadClass(mainClass);ucl.close();我得到一個例外,它找不到課程:java.lang.RuntimeException: java.lang.ClassNotFoundException: net.api.main        at net.al.Main.onEnable(Main.java:39) ~[?:?]        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[spigot.jar:git-Spigot-db6de12-18fbb24]        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot.jar:git-Spigot-db6de12-18fbb24]        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Spigot-db6de12-18fbb24]        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357) [spigot.jar:git-Spigot-db6de12-18fbb24]        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317) [spigot.jar:git-Spigot-db6de12-18fbb24]        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:741) [spigot.jar:git-Spigot-db6de12-18fbb24]        at org.bukkit.Bukkit.reload(Bukkit.java:535) [spigot.jar:git-Spigot-db6de12-18fbb24]
查看完整描述

2 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

我通過將 jar 添加到類路徑來修復它。文件到 jar 路徑的代碼:


public static void addURLToClassPath(URL url) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException

    {

        URLClassLoader classLoader = (URLClassLoader) MyClass.class.getClassLoader();

        @SuppressWarnings("rawtypes")

        Class clazz = URLClassLoader.class;

        @SuppressWarnings("unchecked")

        Method method = clazz.getDeclaredMethod("addURL", new Class[] { URL.class });

        method.setAccessible(true);

        method.invoke(classLoader, new Object[] { url });

    }


查看完整回答
反對 回復 2022-12-28
?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

請檢查net.api.main是否存在

或者檢查變量 jarFile 和 mainClass


查看完整回答
反對 回復 2022-12-28
  • 2 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號