10



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

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

但是当我尝试输出可用堆大小时

Long heapFreeSize = Runtime.getRuntime().freeMemory();

它总是输出大约 30000000 的东西。
我想它的大小以字节为单位,所以大约 30 兆字节。
那么为什么空闲堆内存没有增加呢?

4

2 回答 2

17

MAVEN_OPTS是一个环境变量,由 Maven 读取并用作 fork 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
于 2011-01-21T19:18:24.453 回答
2

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

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

于 2011-01-11T12:52:20.047 回答