我在 Eclipse 之外运行应用程序时遇到问题。它在 IDE 内的应用程序没有的地方给出了 ClassCastException。特别是,我将尝试转换的实例名称输出到终端,在 IDE 内部它给出正确的类型,例如“NestedEngineImpl”,而在 IDE 外部它给出“EngineImpl”,但 EngineImpl 无法转换为 NestedEngineImpl 除外。 NestedEngineImpl 扩展了 EngineImpl。可执行 jar 是使用 Eclipse 的导出可运行 JAR 文件创建的。 jar 打开并运行直到出现异常点。
任何建议将不胜感激。
最佳答案
检查 jar 的版本。试试这个(将“java/lang/Object.class”替换为您的类的适当路径):
ClassLoader.getSystemClassLoader().getSystemResource("java/lang/Object.class")
它将为您提供 jar 的 URL,您可以打印该 URL 以检查您的类(class)来自哪里)。
关于java - 可执行 JAR 中的 ClassCastException 不在 IDE 内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4092238/