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-06-04 10:16:01
- 链接: https://sabthever.online/2025/06/03/technology/java/idea多开程序/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
推荐阅读
推荐阅读