zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    [转]django自定义表单提交
    [django/mysql] 使用distinct在mysql中查询多条不重复记录值的解决办法
    [Django]下拉表单与模型查询
    [Django]模型提高部分--聚合(group by)和条件表达式+数据库函数
    [Django]模型学习记录篇--基础
    [Django]数据批量导入
    怎么让自己的本地php网站让别人访问到
    HTML Marquee跑马灯
    marquee标签详解
    apache的虚拟域名rewrite配置以及.htaccess的使用。
  • 原文地址:https://www.cnblogs.com/zengming/p/8776565.html
Copyright © 2011-2022 走看看