15人参与 • 2026-04-30 • Java
在 cursor ide 中运行 spring boot 项目时,可能出现以下问题:
outofmemoryerror在项目根目录的 .vscode/launch.json 中为运行配置添加 jvm 内存参数。
在项目根目录创建 .vscode 文件夹(如果不存在),然后创建 launch.json 文件。
{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "current file",
"request": "launch",
"mainclass": "${file}"
},
{
"type": "java",
"name": "spring boot application",
"request": "launch",
"mainclass": "com.example.demo.application",
"projectname": "your-project-name",
"vmargs": "-xms1024m -xmx2048m -xx:metaspacesize=512m -xx:maxmetaspacesize=1024m -xx:+useg1gc -dspring.devtools.restart.enabled=false",
"console": "internalconsole",
"internalconsoleoptions": "openonsessionstart"
},
{
"type": "java",
"name": "spring boot application (large)",
"request": "launch",
"mainclass": "com.example.demo.application",
"projectname": "your-project-name",
"vmargs": "-xms2048m -xmx4096m -xx:metaspacesize=1024m -xx:maxmetaspacesize=2048m -xx:+useg1gc -xx:maxgcpausemillis=200 -dspring.devtools.restart.enabled=false",
"console": "internalconsole",
"internalconsoleoptions": "openonsessionstart"
}
]
}| 参数 | 说明 | 推荐值 |
|---|---|---|
-xms | 初始堆内存 | 1024m(小项目)或 2048m(大项目) |
-xmx | 最大堆内存 | 2048m(小项目)或 4096m(大项目) |
-xx:metaspacesize | 元空间初始大小 | 512m 或 1024m |
-xx:maxmetaspacesize | 元空间最大大小 | 1024m 或 2048m |
-xx:+useg1gc | 使用 g1 垃圾收集器 | 推荐启用 |
-xx:maxgcpausemillis | 最大 gc 暂停时间(毫秒) | 200 |
-dspring.devtools.restart.enabled=false | 禁用 devtools 自动重启 | 减少内存占用 |
f5 或点击运行按钮在 .vscode/settings.json 中配置:
{
"java.jdt.ls.vmargs": "-xmx2048m -xx:+useg1gc",
"java.debug.settings.vmargs": "-xms1024m -xmx2048m -xx:metaspacesize=512m -xx:maxmetaspacesize=1024m",
"java.compile.nullanalysis.mode": "automatic"
}macos/linux:
export maven_opts="-xms1024m -xmx2048m -xx:metaspacesize=512m -xx:maxmetaspacesize=1024m" mvn spring-boot:run
windows powershell:
$env:maven_opts="-xms1024m -xmx2048m -xx:metaspacesize=512m -xx:maxmetaspacesize=1024m" mvn spring-boot:run
mvn spring-boot:run -dspring-boot.run.jvmarguments="-xms1024m -xmx2048m -xx:metaspacesize=512m -xx:maxmetaspacesize=1024m"
在 pom.xml 的 spring-boot-maven-plugin 中添加:
<plugin>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-maven-plugin</artifactid>
<configuration>
<jvmarguments>
-xms1024m
-xmx2048m
-xx:metaspacesize=512m
-xx:maxmetaspacesize=1024m
-xx:+useg1gc
</jvmarguments>
</configuration>
</plugin>#!/bin/bash export maven_opts="-xms1024m -xmx2048m -xx:metaspacesize=512m -xx:maxmetaspacesize=1024m -xx:+useg1gc" mvn spring-boot:run
赋予执行权限:
chmod +x run.sh ./run.sh
@echo off set maven_opts=-xms1024m -xmx2048m -xx:metaspacesize=512m -xx:maxmetaspacesize=1024m -xx:+useg1gc mvn spring-boot:run
以下是一个多模块 spring boot 项目的完整配置示例:
{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "current file",
"request": "launch",
"mainclass": "${file}"
},
{
"type": "java",
"name": "api module",
"request": "launch",
"mainclass": "com.example.api.apiapplication",
"projectname": "api-module",
"vmargs": "-xms1024m -xmx2048m -xx:metaspacesize=512m -xx:maxmetaspacesize=1024m -xx:+useg1gc -dspring.devtools.restart.enabled=false",
"console": "internalconsole",
"internalconsoleoptions": "openonsessionstart"
},
{
"type": "java",
"name": "web module",
"request": "launch",
"mainclass": "com.example.web.webapplication",
"projectname": "web-module",
"vmargs": "-xms1024m -xmx2048m -xx:metaspacesize=512m -xx:maxmetaspacesize=1024m -xx:+useg1gc -dspring.devtools.restart.enabled=false",
"console": "internalconsole",
"internalconsoleoptions": "openonsessionstart"
},
{
"type": "java",
"name": "job module",
"request": "launch",
"mainclass": "com.example.job.jobapplication",
"projectname": "job-module",
"vmargs": "-xms1024m -xmx2048m -xx:metaspacesize=512m -xx:maxmetaspacesize=1024m -xx:+useg1gc",
"console": "internalconsole",
"internalconsoleoptions": "openonsessionstart"
},
{
"type": "java",
"name": "consumer module",
"request": "launch",
"mainclass": "com.example.consumer.consumerapplication",
"projectname": "consumer-module",
"vmargs": "-xms1024m -xmx2048m -xx:metaspacesize=512m -xx:maxmetaspacesize=1024m -xx:+useg1gc",
"console": "internalconsole",
"internalconsoleoptions": "openonsessionstart"
}
]
}-xms512m -xmx1024m -xx:metaspacesize=256m -xx:maxmetaspacesize=512m
-xms1024m -xmx2048m -xx:metaspacesize=512m -xx:maxmetaspacesize=1024m -xx:+useg1gc
-xms2048m -xmx4096m -xx:metaspacesize=1024m -xx:maxmetaspacesize=2048m -xx:+useg1gc -xx:maxgcpausemillis=200
运行应用后,在终端执行:
jps -v
查看实际使用的 jvm 参数。
在应用运行时,可以通过以下方式监控:
jconsole 或 jvisualvm/actuator/metrics 端点确认没有以下错误:
outofmemoryerrorjava.lang.outofmemoryerror: metaspacejava.lang.outofmemoryerror: java heap spacea: 可以通过以下方式:
jconsole 监控实际内存使用a: 可能的原因:
a: g1gc 适合大堆内存场景,gc 暂停时间更可控,推荐在 2gb 以上堆内存时使用。
a: 可以在 launch.json 中创建多个配置,例如:
通过合理配置 jvm 内存参数,可以有效解决 cursor ide 中 spring boot 项目启动时的内存不足问题。推荐使用 launch.json 方式,既方便又灵活。根据项目规模选择合适的内存配置,可以确保应用稳定运行。
注意事项:
以上就是cursor ide中springboot项目启动内存不足问题的解决方案的详细内容,更多关于springboot项目启动内存不足的资料请关注代码网其它相关文章!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论