我实际上是在问这个问题,但是为了spring-boot:run目标:how to pass --add-opens JDK module configuration to maven test
对于上下文,我正在尝试执行spring 1.5.1.RELEASE代码,它是为jdk16中的jdk16 1.8编写的。JDK 9引入了模块的概念,这是一个向后不兼容的变化,尽管从我的研究来看,似乎有一些解决办法。当我运行代码时,我会得到以下错误:
无法使受保护的最终java.lang.ClassLoader.defineClass(java.lang.String,
java.lang.Class byte[],int,int,java.security.ProtectionDomain)抛出java.lang.ClassFormatError :模块java.base不向未命名模块“打开java.lang”
与其向这个旧项目添加模块,我希望通过对现有项目的最小修改来克服这一问题。在不添加模块的情况下,运行我的应用程序需要做些什么?我知道的一个解决办法是下载JDK 8并使用它运行代码,但这似乎不是一个好的解决方案。
发布于 2021-05-25 23:02:55
我想我找到了答案,但我想知道是否有更好的方法:
<build>
    <finalName>project</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <jvmArguments>--add-opens java.base/java.lang=ALL-UNNAMED</jvmArguments>
            </configuration>
        </plugin>
    </plugins>
</build>https://stackoverflow.com/questions/67696505
复制相似问题