当我运行maven-jetty-plugin时,我运行下一个命令:
mvn -DMAVEN_OPTS="-Xmx1024m -Xms512m" -Djetty.port=8080 jetty:run
但是当我尝试使用
输出空闲堆大小时Long heapFreeSize = Runtime.getRuntime().freeMemory();
总是输出约30000000左右的东西
我想它的大小以字节为单位,大约30兆字节。
为什么免费堆内存没有增加?
答案 0 :(得分:17)
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
答案 1 :(得分:2)
我认为-DMAVEN_OPTS =“ - Xmx1024m -Xms512m”是指定内存参数的正确方法。
设置一个名为MAVEN_OPTS的env变量,内容为“-Xmx1024m -Xms512m”