可执行JAR中的ClassCastException不在IDE中

时间:2010-11-03 22:29:23

标签: java eclipse jar executable classcastexception

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

非常感谢任何建议。

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

也许你正在遭受我们称之为Jar Hell的问题,它类似于DLL Hell,你的JAR版本不正确,你需要用正确的版本替换它。在不断更改库的大型开发环境中,这种情况会更频繁发生。

答案 2 :(得分:0)

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