加载一个类而不加载其他类时,类加载器抛出ClassDefNotFoundError。那个特定的课有什么问题?

问题描述 投票:0回答:1

我已经四处询问并环顾了一个月的大部分时间,我找不到解决方案。

好的,所以我需要以前使用过Java类加载器的人的帮助。具体来说,有人处理了jar文件中的类问题,但它抛出了ClassDefNotFound异常。

本质上,我正在尝试为我的项目创建一个插件加载器(https://github.com/CloudGamer360/Project-ArchT5 - 请参阅“开发”分支以获取最新代码),因此net.cloudsbots.archseriest.archt5.plugin.PluginManager类应该是唯一重要的事情。我做了一个插件,在过去没有错误加载它,所以我觉得我的插件加载器很好,但我不知道,可能是一个我错过了一些东西,因为插件工作很多更小,更简单。

无论如何,我认为问题是什么,但是在插件本身发生了大量失败的修复之后我还不知道。被称为ArcadeT5,它是我的ArchT5项目的游戏“引擎”插件,旨在使机器人的游戏开发更容易。 (在这里找到https://github.com/CloudGamer360/ArcadeT5)我得到了一些类加载,迭代jar文件,直到它加载net.cloudsbots.arcadet5.games.Game类,其中它在ClassDefNotFound中抛出PluginManager异常defineclass()的电话(关于开发的第177行)

日志截图:

java classloader noclassdeffounderror classnotfoundexception
1个回答
0
投票

在注意到装载机的某些东西之后想出来了。似乎如果一个类继承了另一个尚未加载的类,它将抛出一个NoClassDefFoundError

如果您正在创建一个调用'defineClass'之类的方法的自定义类加载器,请确保捕获任何NoClassDefFoundError异常并加载所需的类,这样可以省去一些麻烦。

© www.soinside.com 2019 - 2024. All rights reserved.