idea2020.1.2连接Linux服务器进行debug

如题,本来以为在Linux上debug不是多难的一个事儿,结果生生卡了好多天才解决,赶紧记录一波。
先附上在此过程中查找的相关资料:
1、maven工程、打jar包debug
Idea如何远程连接linux服务器进行debug操作
2、非maven工程、不打jar包debug
IntelliJ IDEA如何远程连接Debug Linux上的Java程序

不打jar包debug

第一步:
写一个Java工程:(非maven的普通工程,代码网上找的)
在这里插入图片描述
先在idea中debug一次,生成.class文件:
在这里插入图片描述
然后把.class文件部署到Linux服务器上,我的机器是win7的,没法使用scp命令进行部署,所以我用的是一款工具:WinSCP
在这里插入图片描述
在这里插入图片描述
主机名是Linux服务器IP,端口号我没动,用户名密码是Linux服务器登录时的用户名密码,然后保存并登录即可。
接下来直接找到.class文件的位置,用鼠标拖到服务器里:
在这里插入图片描述
在这里插入图片描述
完成后.class文件就部署到服务器的对应目录下了(我随意部署在了/root目录下,导致后来出了问题找了很久很久…)
在这里插入图片描述
接下来在/root目录下输入命令:
java -agentlib:jdwp=transport=dt_socket,address=9999,suspend=y,server=y com.cd.RemoteDebug
显示以下界面:
在这里插入图片描述
接下来配置idea:
在这里插入图片描述
在这里插入图片描述
OK,万事俱备,开始debug!
在这里插入图片描述
结果,出问题了。。。
在这里插入图片描述
于是我又试了多种不同方式,最终发现在原博客中将.class文件部署到服务器时用的命令如下:
$ scp -P 22 ./com/pkslow/basic/RemoteDebug.class root@xxx.xx.xx.xxx:/root/remoteDebug/com/pkslow/basic/
也就是说,.class文件并不是随便部署到/root下就行的,于是我修改了文件路径将我的.class文件放在对应目录下:
在这里插入图片描述
再在/root/debug_test2路径下输入命令java -agentlib:jdwp=transport=dt_socket,address=9999,suspend=y,server=y com.cd.RemoteDebug后终于成功了:
在这里插入图片描述
通过后续实验,发现几个需要注意的地方:
1、服务器中的.class文件的相对路径不能变,必须是debug_test2/com/cd/RemoteDebug.class
2、命令java -agentlib:jdwp=transport=dt_socket,address=9999,suspend=y,server=y com.cd.RemoteDebug必须在debug_test2下输入,而debug_test2本身可以移动到其他路径下
3、命令中必须是com.cd.RemoteDebug
原因还不清楚,之后水平提高或许能搞懂原因为何。也希望如果有高手看到这篇文章能告知原因,代码格式已在上文附上

后续补充:
新发现只需要保证服务器下的目录结构和idea中src目录下的结果相同即可,也就是说只需要保证服务器中是com/cd/RemoteDebug.class,同时命令java -agentlib:jdwp=transport=dt_socket,address=9999,suspend=y,server=y com.cd.RemoteDebug需要在com目录的上级目录下输入执行

此处推荐一个新找的的debug博客:
linux命令行 jdb,如何使用加多宝(jdb)在linux下调试Java程序

打jar包来debug

可以完全借鉴开头我附上的博客,只是需要注意原博客此处:
在这里插入图片描述
如何开启端口号的方法,我是通过nc命令实现的:
在这里插入图片描述
nc命令的详细介绍烦请百度,此处不再赘述,要想退出nc命令只需要Ctrl+C即可

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值