1

我在 Eclipse 之外运行我的应用程序时遇到问题。它在 IDE 中的应用程序没有的地方给出 ClassCastException。特别是,我向终端输出我要转换的实例的名称,并且在 IDE 内部它给出了正确的类型,例如“NestedEngineImpl”,而在 IDE 外部它给出了“EngineImpl”,但 EngineImpl 不能转换为 NestedEngineImpl . NestedEngineImple 扩展了 EngineImpl。可执行 jar 是使用 Eclipse 的 Export Runnable JAR 文件创建的。jar 打开并运行直到异常点。

任何建议将不胜感激。

4

3 回答 3

1

检查你的罐子的版本。试试这个(用你的类的适当路径替换“java/lang/Object.class”):

ClassLoader.getSystemClassLoader().getSystemResource("java/lang/Object.class")

它将为您提供 jar 的 URL,您可以打印出来以检查您的课程来自哪里)。

于 2010-11-03T23:23:23.433 回答
0

谢谢大家的回复。在运行 Eclipse 中设置的 jar 时,我只是没有指定 VM 参数。

于 2010-11-05T00:44:17.463 回答
0

也许您正遭受我们所说的痛苦,Jar Hell这类似于DLL Hell您的 JAR 版本不正确,您需要用正确的版本替换它。在库不断更改的大型开发环境中,这种情况更频繁地发生。

于 2010-11-03T22:36:14.637 回答