IDEA Java程序调试
IDEA Java程序调试
最后更新于
IDEA Java程序调试
最后更新于
如果有需要调试的项目源码,可以直接打开一个存在的项目,如果没有项目源码只有class或者jar文件的话需要在IDEA中添加jar到依赖库。
Java应用程序可以在运行时添加启动参数即可调试,需要注意的是不同的JDK版本的调试参数可能会不一样。
JDK5-8:
JDK9+:
suspend=n
表示的是启动Java应用时是否立即进入调试模式,suspend=y
表示启动即暂停,suspend=n
则表示启动时不需要暂停。address=*:5005
表示的是Debug
监听的服务地址和端口,根据需求修改,上述配置会监听到0.0.0.0
。
点击工具栏的Add Configuration...
,点击左侧的+
号,选择Remote
,如下图:
配置远程Debug信息,填入远程服务的IP地址、端口信息,注意JDK版本,JDK8+
使用的调试参数是不一样的,最后如果默认选择的classpath
不对需要手动选择下classpath
。
以调试模式启动Java应用也很简单,只需要加上调试参数即可:
这个时候程序会处于等待状态(光标会一致闪烁,等待远程连接):
假设我们有需要调试的应用程序代码,我们可以直接在Java类上设置断点即可调试。
示例-Test.java:
这个时候就可以看到程序已经运行至断点的位置了:
如上示例,假设我们这个时候只有Test.class的class文件或者Test.class对应的test.jar
文件,我们应该怎么调试呢?
只有class的情况下我们进入源码所在的包,然后打包成jar文件即可:
命令执行结果:
这个时候统计目录就会生成一个test.jar
,我们只需要把这个jar添加到classpath
然后设置好断点就可以调试了。
添加jar
到IDEA
的classpath
,可以直接选择jar目录或者jar文件然后右键Add as Library
,也可以选择项目以外的目录或者jar文件。
示例-直接选择项目中的jar:
示例-选择项目以外的jar:
选择jar
需要添加的classpath
信息,通常不需要修改:
启动Test示例:
展开test.jar
并在Test.class中设置断点,最后点击工具栏的调试按钮即可调试:
常见的中间件启动脚本中都内置了调试参数,如Tomcat的bin/catalina.sh
就内置了调试参数:
但最简单直接的方式是直接在Tomcat
的启动脚本catalina.sh
(Windows换成catalina.bat)中添加Debug
参数即可:
然后再使用catalina.sh
启动Tomcat就会发现Tomcat
会处于等待远程连接状态:
接下来就只需要导入Tomcat
的jar并设置断点就可以调试了。
添加Tomcat
的lib
目录到IDEA
的classpath
:
展开左侧External Libraries
->lib
->选择需要断点的类
->点击工具栏的Debug
:
然后在webapps/ROOT
目录下新建一个test.jsp
:
最后点击工具栏的Debug后控制台的Tomcat
就会自动启动,知道触发断点为止,上图示例中我设置的断点是org.apache.catalina.connector.RequestFacade#getParameter
,所以需要使用浏览器请求任意页面并传入参数(访问http://localhost:8080/test.jsp?id=yzmm
)即可进入断点:
其实调试Tomcat最简单的方式是直接启动一个Maven Web项目并使用Tomcat
启动,然后在pom.xml
中配置对应版本的Tomcat
的依赖就可以直接Debug了,使用这种调试方法可以让您学会如何使用IDEA调试任意的Java程序,仅此而已。
在待调试的程序点设置断点,并点击IDEA Debug
配置: