idea多开程序
一. 问题
idea运行的时候,有时需要多开一个程序,其中可能遇到一些问题。比如端口需要不一样,不然有可能冲突;比如某一个程序需要一直保持,不需要随着代码改动重新编译。
二. 解决方法
本文解决的就是这两个问题,都可以通过右上角执行的程序中修改配置来解决。
找到上面靠右的run左边的配置点击,然后在下拉框中选择edit configuration。

在左侧选择自己想要的进程,也可以按左上的+-来添加和配置更多进程,达到多开的效果。
然后可以选择Modify options中的vm option,在新出现的文本框中就可以输入程序运行的临时参数。
针对于上述的两个问题,可以由以下两个参数解决:
- 禁用
devtools的代码修改后立刻编译重启:-Dspring.devtools.restart.enabled=false - 修改该进程端口
-Dserver.port=9093
如果要使用多个参数,只要各个参数之间用空格隔开。
现在用的这两个都是-D开头,这个参数就告诉我们后面跟的相当于application.yml中的参数,优先级是高于application.yml中的。
三. 拓展
除此以外,vm options中还可以有如下的参数。
1. 内存相关参数
- **
-Xms**:设置Java堆的初始大小。- 示例:
-Xms512m(初始堆大小为512MB)
- 示例:
- **
-Xmx**:设置Java堆的最大大小。- 示例:
-Xmx2g(最大堆大小为2GB)
- 示例:
- **
-XX:MaxPermSize=**:设置永久代(PermGen)的最大大小(适用于Java 7及以下版本)。- 示例:
-XX:MaxPermSize=256m
- 示例:
- **
-XX:MaxMetaspaceSize=**:设置元空间(Metaspace)的最大大小(适用于Java 8及以上版本)。- 示例:
-XX:MaxMetaspaceSize=512m
- 示例:
2. 垃圾回收相关参数
- **
-XX:+UseG1GC**:启用G1垃圾回收器。 - **
-XX:+UseParallelGC**:启用并行垃圾回收器。 - **
-XX:+UseConcMarkSweepGC**:启用并发标记-清除垃圾回收器。 - **
-XX:GCTimeRatio=**:设置垃圾回收时间占总运行时间的比例。- 示例:
-XX:GCTimeRatio=19(默认值为99,表示垃圾回收时间占总运行时间的1%)
- 示例:
3. 性能优化参数
- **
-XX:+AggressiveOpts**:启用激进的性能优化选项。 - **
-XX:+TieredCompilation**:启用分层编译(默认启用)。 - **
-XX:CompileThreshold=**:设置方法被编译的调用次数阈值。- 示例:
-XX:CompileThreshold=10000
- 示例:
4. 调试相关参数
- **
-Xdebug**:启用调试模式(已废弃,使用-agentlib:jdwp替代)。 - **
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=\*:5005**:启用远程调试。- 示例:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005(监听5005端口)
- 示例:
- **
-XX:+PrintGCDetails**:打印详细的垃圾回收日志。 - **
-XX:+PrintGCDateStamps**:在垃圾回收日志中打印时间戳。 - **
-XX:+PrintGCTimeStamps**:在垃圾回收日志中打印时间戳。 - **
-XX:LogFile=**:设置垃圾回收日志文件路径。- 示例:
-XX:LogFile=gc.log
- 示例:
5. 线程相关参数
- **
-Xss**:设置每个线程的栈大小。- 示例:
-Xss1m(每个线程的栈大小为1MB)
- 示例:
- **
-XX:ParallelGCThreads=**:设置并行垃圾回收器的线程数。- 示例:
-XX:ParallelGCThreads=4
- 示例:
- **
-XX:ConcGCThreads=**:设置并发垃圾回收器的线程数。- 示例:
-XX:ConcGCThreads=2
- 示例:
6. 其他常用参数
- **
-D=**:设置系统属性。- 示例:
-Dserver.port=9093(设置Spring Boot的服务器端口号)
- 示例:
- **
-XX:+HeapDumpOnOutOfMemoryError**:在发生OutOfMemoryError时生成堆转储文件。 - **
-XX:HeapDumpPath=**:设置堆转储文件的路径。- 示例:
-XX:HeapDumpPath=/var/log/heapdump.hprof
- 示例:
- **
-XX:+DisableExplicitGC**:禁用System.gc()的显式调用。 - **
-XX:+UseStringDeduplication**:启用字符串去重(需要启用G1垃圾回收器)。

- 标题: idea多开程序
- 作者: Sabthever
- 创建于 : 2025-06-03 17:10:34
- 更新于 : 2025-10-09 16:14:31
- 链接: https://sabthever.cn/2025/06/03/technology/java/idea多开程序/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。