Maven中的自由堆大小不会增加

时间:2011-01-11 09:25:46

标签: java maven heap jetty maven-jetty-plugin



当我运行maven-jetty-plugin时,我运行下一个命令:

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

但是当我尝试使用

输出空闲堆大小时
Long heapFreeSize = Runtime.getRuntime().freeMemory();

总是输出约30000000左右的东西 我想它的大小以字节为单位,大约30兆字节。
为什么免费堆内存没有增加?

2 个答案:

答案 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”