Java Maven中的空闲堆大小不会增加

Java Maven中的空闲堆大小不会增加,java,maven,heap,jetty,maven-jetty-plugin,Java,Maven,Heap,Jetty,Maven Jetty Plugin,当我运行maven jetty插件时,我运行下一个命令: mvn -DMAVEN_OPTS="-Xmx1024m -Xms512m" -Djetty.port=8080 jetty:run 但是当我试图用 Long heapFreeSize = Runtime.getRuntime().freeMemory(); 它总是输出大约30000000的数据 我想它的大小是以字节为单位的,所以大约是30兆字节 那么为什么空闲堆内存没有增加?我认为-DMAVEN_OPTS=“-Xmx1024m-Xms



当我运行maven jetty插件时,我运行下一个命令:

mvn -DMAVEN_OPTS="-Xmx1024m -Xms512m" -Djetty.port=8080 jetty:run
但是当我试图用

Long heapFreeSize = Runtime.getRuntime().freeMemory();
它总是输出大约30000000的数据
我想它的大小是以字节为单位的,所以大约是30兆字节
那么为什么空闲堆内存没有增加?

我认为-DMAVEN_OPTS=“-Xmx1024m-Xms512m”不是在这里指定内存参数的正确方法


设置一个名为MAVEN_OPTS的环境变量,其内容为“-Xmx1024m-Xms512m”

MAVEN_OPTS
是一个环境变量,由MAVEN读取并用作分叉java进程的命令行参数。命令行参数控制Java可执行文件的启动方式,例如内存设置等

-D
用于设置Java系统属性,这与命令行参数完全不同。可以通过编程方式读取Java系统属性,例如使用System.getProperties()

窗口:

SET MAVEN_OPTS="-Xmx1024m -Xms512m"
mvn -Djetty.port=8080 jetty:run
Linux:

export MAVEN_OPTS="-Xmx1024m -Xms512m"
mvn -Djetty.port=8080 jetty:run

这是一个OutOfMemory错误吗?您是否尝试使用-XX:MaxPermSize=1024m?freeMemory()显示未来分配的空间。然后,permament对象进入Perm空间。如果我尝试-XX:MaxPermSize=1024,没有任何变化。。。我现在无法在OutOfMemoryError上测试它。。。您的意思是,此空间(用于将来的分配)将根据应用程序的需要而增加?maxMemory()显示内存总量。粘贴maxMemoryoutput pleasefreeMemory():25288024 maxMemory():259522560,似乎最大内存是可用内存的十倍你是说mvn jetty:run-Xmx1024m-Xms512m?它不跑了。mvn jetty:run-DXmx1024m-DXms512m运行,但内存与MAVEN_Opts相同抱歉我的错误我认为唯一的方法是设置一个环境变量我必须重新读取两次才能“获取”获取,但随后解决了所有问题:-)谢谢。节省了相当多的时间,我会浪费在摆弄东西上。