java 远程debug

本文详细解释了Java应用中使用-agentlib:jdwp参数进行远程调试的方法,包括设置传输机制、指定调试服务器、内存限制以及堆转储策略,以便于监控和处理内存溢出问题。同时,强调了如何在后台静默启动应用。
摘要由CSDN通过智能技术生成
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=50050 -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./ -jar ${JAR_NAME} >/dev/null 2>&1 &

参数说明



    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=50050: 这个参数用来启动JDWP代理,它允许远程调试。具体设置为:
        transport=dt_socket: 使用TCP套接字作为传输机制。
        server=y: 指定JVM作为调试服务器,等待调试客户端连接。
        suspend=n: 应用在启动后不会暂停,直接运行。如果是suspend=y,则JVM会在启动时暂停,直到调试器连接。
        address=50050: 指定调试端口为50050。

    -Xmx1536m: 设置JVM最大堆内存为1536MB。这限制了应用可以使用的最大内存量,有助于防止内存溢出。

    -XX:+HeapDumpOnOutOfMemoryError: 当发生OutOfMemoryError时,自动创建堆转储快照(heap dump),这对于分析内存泄漏非常有用。

    -XX:HeapDumpPath=./: 指定堆转储文件生成的目录为当前目录。这意味着当发生OOM时,堆转储文件将直接在应用执行的当前目录下生成。

    -jar ${JAR_NAME}: 启动指定的jar包应用。${JAR_NAME}应该被替换为你的应用jar文件的实际名称。

    >/dev/null 2>&1: 将标准输出(STDOUT)和标准错误(STDERR)都重定向到空设备,意味着不显示任何输出。这使得应用在后台静默运行。

    &: 使命令在后台运行。

在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值