IDEA远程调试

 问题:

        通常在java打成可运行的Jar项目时,运行jar时调试很不方便,特别是要在linux上面执行jar包的情况。此时需要将这个项目打成Jar包(如果是maven项目,直接使用package或者install命令),然后再使用IDEA调试Jar包。

 步骤:

1.通过命令启动调试jar文件:(端口5005可以修改)

    运行命令:java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 test.jar

    执行后显示:Listening for transport dt_socket at address: 5005

  -XDebug  启用调试

  -Xrunjdwp 加载JDWP的JPDA参考执行实例。

  transport  用于在调试程序和 VM 使用的进程之间通讯。

  dt_socket 套接字传输。

  server=y/n VM是否需要作为调试服务器执行。

  address=5005调试服务器监听的端口号。

  suspend=y/n 是否在调试客户端建立连接之后启动 VM ,y会阻塞程序运行直到IDEA远程连接上。

2.在IDEA上创建一个"Remote",配置对应远程调试IP和端口,其他选项可以默认。再以debug的方式启动调试。

  Debug启动后:Connected to the target VM, address: '192.168.11.184:5005', transport: 'socket'

问题:

  在发布项目时,经常以war包的方式部署到Tomcat里面运行,查找问题非常不方便,可以采用IDEA远程调试war项目。

步骤:

1.配置Tomca启动脚本

  在Tomcat脚本添加如下配置  $tomcat_home/bin/catalina.sh

  JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"

2.在IDEA上创建一个"Remote",配置对应远程调试IP和端口,其他选项可以默认。再以debug的方式启动调试。

  Debug启动后:Connected to the target VM, address: '192.168.11.184:5005', transport: 'socket'

  war包调试配置 $tomcat_home/bin/catalina.sh

  JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"

3.在springboot插件依赖中可以添加如下插件

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <jvmArguments>
            -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
        </jvmArguments>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>
原文地址:https://www.cnblogs.com/zengming/p/8776565.html