温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java项目开启远程调试的方法步骤

发布时间:2021-09-14 21:50:54 来源:亿速云 阅读:105 作者:chen 栏目:编程语言

这篇文章主要介绍“Java项目开启远程调试的方法步骤”,在日常操作中,相信很多人在Java项目开启远程调试的方法步骤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java项目开启远程调试的方法步骤”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

环境

apache-tomcat-8.5.16

Linux

如何启用远程调试

tomcat开启远程调试

方法

切换到你的tomcat的bin目录/apache-tomcat-8.5.16/bin 下,执行:

./catalina.sh jpda start

执行上面的命令就可以开启远程debug了,如果想配置一些信息,比如端口号什么的,请参考下面的说明。

参数说明

#  JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start"#          command is executed. The default is "dt_socket".##  JPDA_ADDRESS  (Optional) Java runtime options used when the "jpda start"#          command is executed. The default is localhost:8000.##  JPDA_SUSPEND  (Optional) Java runtime options used when the "jpda start"#          command is executed. Specifies whether JVM should suspend#          execution immediately after startup. Default is "n".##  JPDA_OPTS    (Optional) Java runtime options used when the "jpda start"#          command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,#          and JPDA_SUSPEND are ignored. Thus, all required jpda#          options MUST be specified. The default is:##          -agentlib:jdwp=transport=$JPDA_TRANSPORT,#            address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND

操作说明

所以如果想修改配置,则如下操作:

在catalina.sh中进行配置:

JPDA_TRANSPORT=dt_socket JPDA_ADDRESS=5005 JPAD_SUSPEND=n

或者通过JPDA_OPTS进行配置:

JPDA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'

springboot开启远程调试

远程调试maven设置

The run goal forks a process for the boot application. It is possible to specify jvm arguments to that forked process. The following configuration suspend the process until a debugger has joined on port 5005

<project> ... <build>  ...  <plugins>   ...   <plugin>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-maven-plugin</artifactId>    <version>1.1.12.RELEASE</version>    <configuration>     <jvmArguments>      -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005     </jvmArguments>    </configuration>    ...   </plugin>   ...  </plugins>  ... </build> ...</project>

These arguments can be specified on the command line as well, make sure to wrap that properly, that is:

mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"

jar 命令开启远程调试

在执行jar的时候,添加上参数。如下:

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n -jar demo.jar

如果想深入了解Java调试,那么去看一下这个吧。深入Java调试体系

问题

如果出现Connection refused

首先检查一下端口8000的使用情况:

use:~/tomcat/logs # netstat -an|grep 8000cp    0   0 127.0.0.1:8000     0.0.0.0:*        LISTEN

可见当前16808端口服务被绑定了回环地址,外部无法访问。即本地调试。

办法:

修改catalina.sh中一个参数。

if [ -z "$JPDA_TRANSPORT" ]; then  JPDA_TRANSPORT="dt_socket" fi if [ -z "$JPDA_ADDRESS" ]; then  JPDA_ADDRESS="0.0.0.0:8000" fi if [ -z "$JPDA_SUSPEND" ]; then  JPDA_SUSPEND="n" fi

JPDA_ADDRESS="localhost:8000" 把默认值(localhost:8000)改成0.0.0.0:8000。默认是本地ip调试也就是无法远程调试,0.0.0.0表示所有ip地址都能调试。

远程连上后再看端口情况:

root@VM-198-217-ubuntu:/opt/apache-tomcat-8.5.16/bin# netstat -an | grep 8000tcp    0   0 10.133.198.217:8000   60.177.99.27:49998   ESTABLISHED

断开后是这样的:

root@VM-198-217-ubuntu:/opt/apache-tomcat-8.5.16/bin# netstat -an | grep 8000tcp    0   0 0.0.0.0:8000      0.0.0.0:*        LISTENtcp    0   0 10.133.198.217:8000   60.177.99.27:49998   TIME_WAIT

idea连接远程端口进行远程debug

我已经在服务器上开启了远程调试,idea连接的步骤,直接上图。

edit configurations

远程调试配置

参数配置

将红框内的地址和端口号改成自己的。

启动远程调试

成功界面

请求一下试试

调试的姿势和本地调试一样,开始造起来吧!

到此,关于“Java项目开启远程调试的方法步骤”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI