Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java 8迁移到Java 11-无法加载jdk.internal.util类(Java.lang.NoClassDefFoundError)_Java_Spring_Spring Jdbc_Java 11 - Fatal编程技术网

从Java 8迁移到Java 11-无法加载jdk.internal.util类(Java.lang.NoClassDefFoundError)

从Java 8迁移到Java 11-无法加载jdk.internal.util类(Java.lang.NoClassDefFoundError),java,spring,spring-jdbc,java-11,Java,Spring,Spring Jdbc,Java 11,从Java8迁移到Java11打开JDK。获取奇怪的错误,其中来自java.base模块的一个类(java.util.Arrays)无法从java.base模块访问另一个名为(jdk.internal.util.ArraysSupport)的类 如果我查看java.basemodulejdk.internal.util的模块信息,则不会导出包。我尝试了——添加export java.base/jdk.internal.util=ALL-UNNAMED,但得到了相同的错误。As--添加导出有助于将

从Java8迁移到Java11打开JDK。获取奇怪的错误,其中来自java.base模块的一个类(java.util.Arrays)无法从
java.base
模块访问另一个名为(
jdk.internal.util.ArraysSupport
)的类

如果我查看
java.base
module
jdk.internal.util
的模块信息,则不会导出包。我尝试了
——添加export java.base/jdk.internal.util=ALL-UNNAMED
,但得到了相同的错误。As
--添加导出
有助于将包导出到另一个模块。这里的问题是来自同一模块的一个类无法访问来自同一模块的另一个类。不确定这里出了什么问题,正在寻求建议

java.lang.NoClassDefFoundError: Could not initialize class jdk.internal.util.ArraysSupport
        at java.base/java.util.Arrays.equals(Arrays.java:2873)
        at java.base/sun.security.util.ObjectIdentifier.equals(ObjectIdentifier.java:345)
        at java.base/sun.security.pkcs.PKCS7.parse(PKCS7.java:185)
        at java.base/sun.security.pkcs.PKCS7.parse(PKCS7.java:154)
        at java.base/sun.security.pkcs.PKCS7.<init>(PKCS7.java:136)
        at java.base/sun.security.util.SignatureFileVerifier.<init>(SignatureFileVerifier.java:127)
        at java.base/java.util.jar.JarVerifier.processEntry(JarVerifier.java:297)
        at java.base/java.util.jar.JarVerifier.update(JarVerifier.java:230)
        at java.base/java.util.jar.JarFile.initializeVerifier(JarFile.java:757)
        at java.base/java.util.jar.JarFile.ensureInitialization(JarFile.java:1034)
        at java.base/java.util.jar.JavaUtilJarAccessImpl.ensureInitialization(JavaUtilJarAccessImpl.java:69)
        at java.base/jdk.internal.loader.URLClassPath$JarLoader$2.getManifest(URLClassPath.java:870)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:788)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:315)
        at org.apache.commons.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2124)
        at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2033)
        at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1533)
        at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158)
        at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116)
        at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
        at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:371)
        at org.springframework.jdbc.core.JdbcTemplate.batchUpdate(JdbcTemplate.java:590)
        at com.rbccm.sales.hub.employee.tasklet.SalesHubSQLExecutionTasklet.execute(SalesHubSQLExecutionTasklet.java:45)
        at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:406)
        at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:330)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
        at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:272)
        at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:81)
        at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:375)
        at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215)
        at org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:145)
        at org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:257)
        at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:200)
        at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:148)
        at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:66)
45号线是

int[] result = jdbcTemplate.batchUpdate(sqls);
我试图在Unix机器上使用单独的普通类加载。而且效果很好

Class<?> classToLoad = Class.forName("jdk.internal.util.ArraysSupport");
Class classToLoad=Class.forName(“jdk.internal.util.ArraySupport”);

它成功地加载了类,所以不确定这里出了什么问题

我用最新的Hikari数据源替换了最新的dbcp数据源,它成功了。谢谢大家的建议

你能发布你的SalesHubSQLExecutionTasklet代码吗?以及您的框架版本(SpringBatch),或者也可以尝试在一个简单的命令行驱动程序中加载相同的类。感谢@Matteozanii的回复。我刚刚添加了上面的代码谢谢@efekctive:我尝试加载class.forName(“jdk.internal.util.ArraySupport”);在unix box上的普通类中,它运行良好。不确定为什么在整个服务运行时不加载:(玩弄导出选项没有任何意义。两个类都在同一个模块中,因此它们不需要导出选项来访问彼此。错误消息没有任何地方说一个类“无法访问另一个类”,它清楚地说“无法初始化”该类。由于初始化在正常情况下工作,因此环境一定发生了变化,例如,执行代码检测。
Class<?> classToLoad = Class.forName("jdk.internal.util.ArraysSupport");