首页 > 解决方案 > JAVA 8:如何在命令中传递 -xms 和 -xmx JVM 值

问题描述

我在Java 8环境中运行springboot应用程序

我用来运行我的应用程序的命令是这样的:

spring-boot:run -Plocalmysql -Dmaven.test.skip=true -Dspring.profiles.active=localmysql

我的目的是将 JVM 值规范添加到我的命令中;所以我被建议使用这个选项语法: "-Drun.jvmArguments=Xms512m -Xmx512m"

但是在运行时它会向我抛出这个警告:

> Java HotSpot(TM) 64-Bit Server VM warning: ignoring option
> PermSize=512m; support was removed in 8.0

是否有任何解决方法或解决方案可以继续在命令中传递它?

标签: javaspring-bootjvmjvm-arguments

解决方案


这只是关于另一个-XX:PermSize自 Java 8 以来不支持的 JVM 参数的警告消息,因为 Permanent Generation 已替换为 Metaspace

如果您在为内存大小设置 JVM 选项时遇到问题,对于 Spring Boot 2,您应该使用spring-boot.run.jvmArguments参数:

mvn spring-boot:run -Plocalmysql -Dmaven.test.skip=true -Dspring.profiles.active=localmysql -Dspring-boot.run.jvmArguments="-Xms512m -Xmx1024m"

或者您可以在 Maven 插件配置部分设置这些参数pom.xml

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <jvmArguments>
            -Xms512m
            -Xmx1024m
        </jvmArguments>
    </configuration>
</plugin>

推荐阅读