单独的jar文件中显示为Object

时间:2018-12-11 20:52:57

标签: java urlclassloader

我有一个名为Passthru的类,该类扩展了一个名为Component的类,该类保存在jar文件中。在运行时,我想加载Passthru(将URLClassLoader与一个或多个jar文件一起使用,以及可选的本地目录),然后针对几种可能性测试超类,其中之一就是Component。如果Passthru和Component都在同一个jar文件中(即使包不同),但如果Passthru位于本地目录中(如前所述,jar文件中包含Component),则此方法非常有用,请在Passthru返回Object。我知道Object在Passthru的父树中,但是在这种情况下,我似乎无法找出Passthru的 direct 父树。我想我可以去Passthru的源代码并扫描找到超类,但是应该有一个更简单的方法……?!

我还注意到,在两种情况下,Passthru均使用我的URLClassLoader进行加载,但是当Passthru位于本地目录中时,其父级的加载器显示为“原始”加载器(空)-不知道这是否相关。

解决了!! 一个愚蠢的问题:原来目录中的源代码是后级的,与jar文件中的代码不匹配。另外,我没有将目录代码添加为Eclipse项目,因此,显然Eclipse编译了该代码,但没有给我任何错误指示,因此我没有看到“幕后”的编译错误。因此,当我纯粹在jar文件中工作时,所有内容都可以工作,但是当我转到目录时,编译错误阻止了那里的类选择Component类。感谢回答我的问题的人-如果您浪费了时间,对不起!

0 个答案:

没有答案