带有 JAVA11 编译代码的未命名模块 classCastException,但它适用于相同源代码的 java 8 编译

问题描述 投票:0回答:0

我们正在将 osgi 应用程序的开发环境从 JAVA8 编译迁移到 JAVA 11 编译。

目前,该应用程序在 java8 编译和 java11 运行时执行时运行良好。

我们在 Java 11 中编译代码并进行部署时,它给我们以下错误:

Caused by: java.lang.ClassCastException: class .ClassA cannot be cast to class [B (.ClassA is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @7112dbb8; [B 在模块 java.加载程序“bootstrap”的基础) 在 .ConsumerClass.getKey(ConsumerClass.java:94) 在.ProcessEventsActivity.processEvents(ProcessEventsActivity.java:129) 在 jdk.internal.reflect.GeneratedMethodAccessor125.invoke(未知来源) 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(删除....

工作环境和非工作环境之间的唯一区别是在非工作环境下在java 11上的编译。 请在这里提出根本原因和可能的前进方向。

谢谢

java osgi java-11 classcastexception unnamed-module
© www.soinside.com 2019 - 2024. All rights reserved.