【发布时间】:2021-10-03 08:26:09
【问题描述】:
我有一个从命令提示符运行时运行良好的应用程序:
java -jar --illegal-access=permit target/Something.jar
但是,在我的 pom.xml 中配置我的 spring boot maven 插件会给我同样的错误,就像我在没有 illegal-access=permit 部分的情况下运行我的 cmd 一样,告诉我它被忽略了:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.something.PreMain</mainClass>
<jvmArguments>
--illegal-access=permit
</jvmArguments>
</configuration>
</plugin>
我做错了什么?这个应用程序在 java 14 中运行良好,我正在升级到 java 16。除了 intelliJ 由于缺少 illegal-access=permit JVM 参数而无法在调试模式下启动它之外,一切仍然运行良好。
【问题讨论】:
-
请注意:
--illegal-accessJVM 参数将 essentially become a no-op in Java 17。 -
正确,我使用的很多库还是需要正确适配Java 16,这个是暂时的
-
尝试使用
--illegal-access=warn(或调试)查看发生了什么问题。正如documentation 中所说,您正在使用可能会消失的内部东西。我想如果你对 java 16 有问题,它可能已经消失了,它适用于 java 14。 -
它在命令提示符下运行时可以工作,它也应该在 intelliJ no 下工作?
-
@Martin 如果您通过 IntelliJ 运行应用程序,请尝试在配置中添加参数。您可以在问题中分享有关如何执行应用程序的确切步骤,并添加 IntelliJ 标记而不是任何其他标记。
标签: java spring-boot jvm-arguments spring-boot-maven-plugin java-16