我在Eclipse之外运行应用程序时遇到问题。它在IDE内的应用程序未提供的位置提供ClassCastException。特别是,我将要尝试转换的实例的名称输出到终端,并且在IDE内部它给出正确的类型,例如“ NestedEngineImpl”,而在IDE外部它给出“ EngineImpl”,但无法将EngineImpl转换为NestedEngineImpl 。 NestedEngineImple扩展了EngineImpl。可执行文件是使用Eclipse的Export Runnable JAR文件创建的。罐子打开并运行,直到出现异常为止。

任何建议将不胜感激。

最佳答案

检查罐子的版本。尝试以下操作(将“ java / lang / Object.class”替换为类的适当路径):

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


它将为您提供jar的URL,您可以将其打印出来以检查班级来自何处。

10-04 20:16