新版idea如何开启多台JVM虚拟机的流程步骤

 更新时间:2024年10月25日 11:34:00   作者:五敷有你  
在IntelliJ IDEA这个集成开发环境中(IDE),开启JVM(Java Virtual Machine)通常是在运行Java应用程序时的操作,本文给大家介绍了新版idea如何开启多台JVM虚拟机的流程步骤,需要的朋友可以参考下

流程如下:

  • 打开 IntelliJ IDEA: 启动你的 IntelliJ IDEA。
  • 打开新的项目或窗口: 可以打开一个新的项目,或者在当前项目中打开一个新的窗口。
  • 配置新的运行/调试配置: 在 IntelliJ IDEA 的工具栏中,找到并点击右侧的编辑配置按钮(位于运行/调试配置的旁边,通常是一个小下拉箭头)。
  • 选择 Edit Configurations: 在弹出的菜单中,选择 "Edit Configurations"。
  • 添加新的配置: 在打开的配置窗口左上角,点击加号按钮或复制按钮,以添加一个新的配置。
  • 选择 Application 配置类型: 在弹出的菜单中,选择 "Application" 配置类型。
  • 配置新的运行/调试配置: 在右侧的配置窗口中,配置以下参数:
    • Name(名称): 为你的配置起一个名称,以便区分。
    • Main class(主类): 指定你的 Java 主类。
    • VM options(虚拟机选项): 在这里输入你想要配置的虚拟机选项,比如 -Duser.language=en
    • Program arguments(程序参数): 如果你的程序需要参数,可以在这里添加。
  • 保存配置: 确保点击窗口底部的 "OK" 按钮来保存你的配置。
  • 运行新的配置: 在 IntelliJ IDEA 的工具栏中选择你刚刚配置的运行/调试配置,点击运行按钮。

通过以上步骤,你就可以在 IntelliJ IDEA 中同时运行多个不同的 JVM 虚拟机实例。你可以通过创建多个配置,每个配置对应一个虚拟机实例,方便地管理和切换。这在需要模拟多个环境或进行并发调试时非常有用。

手把手教学

1.看看自己的项目

2.可能开始的时候啥也没有,就点Run Configuration Type

3.再点击Edit Configurations...

4.点击+号添加SpringBoot

5.主类选择一下,一般就一个,点他选了就行。

6.然后点击Modify Options 选择添加add VM Options

7.点击apply 再OK就有了!!!

拓展:IDEA 设置启动 JVM 参数

一、设置方式

1. 通过 IDEA 设置

2. 编辑配置文件

IDEA 安装目录 / bin 目录,其中有两个 vmoptions 文件,针对不同的 JDK 进行配置

二、参数说明

1. 通用参数说明

参数说明
-Xms初始化堆内存大小, eg. -Xms1G
-Xmx堆内存最大值,eg. -Xms1G,通常与 -Xms 设置相同的值
-XX:ReservedCodeCacheSize“代码缓存”,它是用来存储已编译方法生成的本地代码。代码缓存确实很少引起性能问题,但是一旦发生其影响可能是毁灭性的。如果代码缓存被占满,JVM会打印出一条警告消息,并切换到interpreted-only 模式:JIT编译器被停用,字节码将不再会被编译成机器码。因此,应用程序将继续运行,但运行速度会降低一个数量级,直到有人注意到这个问题。就像其他内存区域一样,我们可以自定义代码缓存的大小。它们的参数都是字节值。eg. -XX:ReservedCodeCacheSize=240m
-XX:InitialCodeCacheSize“代码缓存” 初始大小,eg. -XX:InitialCodeCacheSize=240m
-XX:+UseCodeCacheFlushing如果代码缓存不断增长,例如,因为热部署引起的内存泄漏,那么提高代码的缓存大小只会延缓其发生溢出。为了避免这种情况的发生,当代码缓存被填满时让JVM放弃一些编译代码。通过使用这个参数,我们至少可以避免当代码缓存被填满的时候 JVM 切换到 interpreted-only 模式, 该值默认是开启的
-XX:+AutoBoxCacheMaxJVM 在加载 Integer 这个类时,会优先加载静态的代码。当 JVM 进程启动完毕后, -128 ~ +127 范围的数字会被缓存起来,调用 valueOf 方法的时候,如果是这个范围内的数字,则直接从缓存取出。eg. -XX:AutoBoxCacheMax=20000
-XX:+AlwaysPreTouchJAVA 进程启动的时候,虽然我们可以为 JVM 指定合适的内存大小,但是这些内存操作系统并没有真正的分配给 JVM ,而是等 JVM 访问这些内存的时候,才真正分配,这样会造成以下问题。 GC 的时候,新生代的对象要晋升到老年代的时候,需要内存,这个时候操作系统才真正分配内存,这样就会加大 young gc 的停顿时间; 可能存在内存碎片的问题。可以在 JVM 启动的时候, eg. -XX:+AlwaysPreTouch
-XX:PermSizeJVM 初始分配的非堆内存,就是永久代,JDK 1.7 适用。 eg. -XX:PermSize=64M
-XX:MaxPermSizeJVM 最大允许分配的非堆内存,按需分配, JDK 1.7 适用,eg. -XX:MaxPermSize=128M
-XX:MetaspaceSize初始元空间大小,达到该值就会触发垃圾收集进行类型卸载,同时 GC 会对该值进行调整:如果释放了大量的空间,就适当降低该值;如果释放了很少的空间,那么在不超过 MaxMetaspaceSize 时,适当提高该值, JDK 8 适用。eg. -XX:MetaspaceSize=128M
-XX:MaxMetaspaceSize最大元空间,默认是没有限制的,JDK 8 适用。 eg. -XX:MaxMetaspaceSize =128M

2. 使用 CMS 垃圾回收

参数说明
-XX:+UseConcMarkSweepGC采用 CMS 垃圾回收机制

3. 使用 G1 垃圾回收

参数说明
-XX:+UseG1GCG1 垃圾回收机制
-XX:+UseStringDeduplicationG1垃圾回收器的时候,通过该参数我们可以通过删除重复的字符串,只保留一个char[]来优化堆内存。

三、样例

1. 采用 CMS 垃圾回收

-server
-Xms1024m
-Xmx2048m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=512m
-XX:+UseConcMarkSweepGC
-XX:+UseCodeCacheFlushing
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Dsun.awt.keepWorkingSetOnMinimize=true
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djsse.enablesSNIExtension=false
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Dfile.encoding=UTF-8
// -Duser.name=

2. 采用 G1垃圾回收配置

-server
-XX:MetaspaceSize=128M 
-XX:MaxMetaspaceSize=512M 
-XX:+AlwaysPreTouch 
-Xms128m
-Xmx4g
-XX:ReservedCodeCacheSize=512m
-XX:+UseG1GC
-XX:+UseStringDeduplication
-XX:AutoBoxCacheMax=20000
-ea
-Dsun.io.useCanonCaches=false
-Dsun.awt.keepWorkingSetOnMinimize=true
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djsse.enablesSNIExtension=false
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Dfile.encoding=UTF-8
// -Duser.name=

到此这篇关于新版idea如何开启多台JVM虚拟机的流程步骤的文章就介绍到这了,更多相关idea开启多台JVM内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java自定义线程模型处理方法分享

    java自定义线程模型处理方法分享

    本文给大家总结分享了下个人关于java处理自定义线程模型的一些经验和处理方法,有需要的小伙伴可以参考下
    2016-08-08
  • SpringBoot实现账号登录错误次数的限制和锁定功能

    SpringBoot实现账号登录错误次数的限制和锁定功能

    本文介绍了如何使用SpringBoot和Redis实现账号登录错误次数限制和锁定功能,通过自定义注解和AOP切面,结合配置文件灵活设置最大尝试次数和锁定时长,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • 一篇超详细的Spring Boot整合Mybatis文章

    一篇超详细的Spring Boot整合Mybatis文章

    大家都知道springboot搭建一个spring框架只需要秒秒钟。下面通过实例代码给大家介绍一下springboot与mybatis的完美融合,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2021-07-07
  • 详细总结IDEA中打jar包的两种方式

    详细总结IDEA中打jar包的两种方式

    发现有很多小伙伴都不会用IDEA打jar包,今天给大家详细总结了两种IDEA打jar包的方式,对正在学习IDEA使用的小伙伴很有帮助,需要的朋友可以参考下
    2021-05-05
  • IDEA如何切换数据库版本mysql5或mysql8

    IDEA如何切换数据库版本mysql5或mysql8

    本文介绍了如何将IntelliJ IDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及更改密码等
    2025-01-01
  • java对接第三方接口的3种常用方式

    java对接第三方接口的3种常用方式

    java语言中调用第三方接口,可以使用的方法有很多,下面这篇文章主要给大家介绍了关于java对接第三方接口的3种常用方式,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • SpringBoot中整合MyBatis-Plus-Join使用联表查询的实现

    SpringBoot中整合MyBatis-Plus-Join使用联表查询的实现

    本文主要介绍了SpringBoot中整合MyBatis-Plus-Join使用联表查询的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 在Java中如何决定使用 HashMap 还是 TreeMap

    在Java中如何决定使用 HashMap 还是 TreeMap

    这篇文章主要介绍了在Java中如何决定使用 HashMap 还是 TreeMap,很多朋友对这样的问题很迷茫,下面小编给大家带来一篇文章帮助大家了解,需要的朋友可以参考下
    2019-10-10
  • Maven模版Bug及解决办法

    Maven模版Bug及解决办法

    默认,会帮我们创建src/main/resources 按照Maven的规范,Maven会有3个目录,分别是: src/main/java : java源文件存放位置 src/main/resource : resource资源,如配置文件等 src/test/java : 测试代码源文件存放位置
    2016-04-04
  • Java日常练习题,每天进步一点点(52)

    Java日常练习题,每天进步一点点(52)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-08-08

最新评论