java远程debug调试tomcat

本文介绍了Java的JVM原理,阐述了为何Java具备跨平台和安全性。同时,详细讨论了远程调试在Windows到Linux Server或移动平台的应用场景,解析了Java远程调试的原理,即通过debug协议实现两个VM间的通信。并提及了在实际操作中遇到的连接拒绝问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JVM原理

众所周知,Java由于引入了虚拟机JVM,拥有了很好的跨平台和安全性,.java文件由Javac编译成.class文件也叫字节码文件,字节码文件由JVM执行,并由翻译器翻译成各个机器认识的不同的机器码(0101010010101),这样,JVM支持了Java 的跨平台性。

远程调试的应用场景

远程调试很有用,特别是当你的开发环境在Window,又在远端Linux Server或者移动平台上运行Java应用程序,Java提供了一系列的接口和协议让本地Java文件于远端JVM建立联系和通信。


Java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。

首先被debug程序的虚拟机在启动时要开启debug模式,启动debug监听程序。jdwp是Java Debug Wire Protocol的缩写。


方法一:
1、Linux 系统
一般来说什么都不用配置
进入tomcat 的bin 目录下输入命令:
./catalina.sh  jpda start
2、window系统
 ./catalina.bat  jpda start

就可以将项目启动,不用执行 ./startup.sh 或 双击startup.bat

myeclipse 窗口配置如下:
选中要远程调试的项目代码,右键单击,选中 Debug As ,点击 Debug Configurations,双击左边树最后一项Remote Java Application ,如下图所示:



host 为服务器IP地址;
Port 为调试的端口地址,该端口并不是项目访问的端口,而是调试端口,是默认的,如果想改的话去 catalina.sh 进行修改。

查看8000 端口命令如下:
netstat -an|grep 8000

debug透视图中如下

如果要断开的,找到点击,就可以断开连接。


启动调试时提示以下信息:

Failed to connect to remote VM. Connection refused. 
Connection refused: connect


出现这种情况的原因:
a、服务器Tomcat还没有启动,
b、没有以Debug模式启动。
解决方案:服务器杀掉tomcat进程,执行./catalina.sh  jpda start,查看端口是否可用netstat -an|grep 8000(该端口是否通),再用myeclipse 或eclipse 去连接。
 

方法二:
window系统,在catalina.bat里: 
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000


Linux系统,在catalina.sh里: 
CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000" 


方法三:
window系统 
在tomcat目录下的bin目录中新建debug.bat,编辑内容如下 
set JPDA_ADDRESS=8000 
set JPAD_TRANSPORT=dt_socket 
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899 
startup 


双击debug.bat 


Linux 系统 
startup.sh 中的最后一行 exec "$PRGDIR"/"$EXEXUTABLE" start "$@"中的start修改成 
jpda start ,默认的调试端口是8000 ,可以在catalina.sh 文件中设置JPDA_APPDESS=8000 
使用startup.sh 或者catalina.sh jpda start 启动tomcat 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值