起因

这几天,我做的项目中需要使用第三方的 API,在第三方的 API 回调时,出现各种错误,需要远程调试。之前做远程调试的时候,我只会在代码中输出日志,记录下来做分析处理,但这样做既麻烦又费时,往往还不能准确定位问题,恶心至极。之前做 .NET 开发时用过 Remote Debug 这个功能,想想 Idea 这么牛逼,是不是也有这个功能,上网一查,还真有,共享出来,与诸君共勉。

服务端配置

首先,我们要让要让远程服务器支持远程调试功能,在项目启动项上追加特定的 JVM 参数即可,参数如下:

晚于 JDK 1.4.X 版本

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4001

JDK 1.4.X 版本

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4001

JDK 1.3.X 或早起版本

-Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4001

大家根据不同的 JDK 版本使用不同的启动参数即可。本人使用的是 Tomcat 7 + Java 7 ,在 catalina.bat(linux 环境设置 catalina.sh)中设置 JAVA_OPTS 节点即可,“address=4001” 中的 “4001”为调试端口,大家可以根据需求自行设置(友情提示:不要占用网站的端口,有可能会导致项目启动报错)。

IDE 配置

然后,配置一下客户端就可以啦,Idea 的客户端配置非常简单在如下图所示的位置:

点击 Edit Configurations,即可进入 Run/Debug Configurations 界面:

点击左上角的“+”标识,可以在下拉框中发现“Remote”选项,选择确定后,出现右侧区域,首先在HOST(标注2)框中配置需要调试的远程服务器地址,然后在调试端口狂(标注3)中调试端口号(这里的端口号和服务器端的端口号保持一致,本示例中是“4001”),点击 OK 即可。

调试步骤

最后,进入调试流程,整个项目的调试也非常简单,点击下图中的 debug 按钮,当 console 窗口中打印出 “Connected to the target VM, address: 127.0.0.1:4001', transport: 'socket'”即表示链接成功:

当然啦,也会有不顺利的情况出现,如:

服务器端口限制,比如服务器屏蔽了“4001”端口,会导致远程调试失败;

本地代码和远程代码不一致,也会导致远程代码调试失败;

启动成功后,你就可以像调试本地代码一样 Happy 的调试远程代码了。

idea java 远程调试_如何使用 Idea 远程调试 Java 代码相关推荐

  1. java 安卓调试_【转】Android 调试技术

    一.JAVA层单步调试 二.Native层单步调试 三.JAVA层堆栈打印 1. 在指定的函数内打印相关java调用 Log.d(TAG,Log.getStackTraceString(new Thr ...

  2. linux远程 java jar包_给Linux服务器远程安装jdk

    给Linux服务器远程安装jdk 1.下载jdk 2.上传jar包到Linux服务器上 ​ 2.1.服务器上新建一个JAVA文件,存放jdk文件 # mkdir /usr/java ​ 2.2.本地上 ...

  3. eclipse进行调试_使用Eclipse平台进行调试

    eclipse进行调试 编者注 :以下文章最初由Pawel Leszek于2003年5月撰写,并于2007年4月由Chris Aniszczyk更新. Eclipse调试器和Debug视图 Eclip ...

  4. netbeans调试_从NetBeans运行和调试WildFly Swarm应用程序

    netbeans调试 使用NetBeans的Java EE开发人员习惯于直接在NetBeans所选择的应用程序服务器中运行和调试其瘦战应用程序. 在开发打包为über或镂空jars的微服务时,您期望使 ...

  5. java核心面试_前100多个核心Java面试问题

    java核心面试 Core Java interview questions help you in preparing for java based interviews. Whether you ...

  6. java 工作业绩_个人年度工作总结报告java

    <个人年度工作总结报告java.doc>由会员分享,可免费在线阅读全文,更多与<个人年度工作总结报告java>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存 ...

  7. java俄罗斯方块视频_[VIP视频]【A0233】java面对对象编程-俄罗斯方块视频教程 高清视频 百度云 百度网...

    Java视频教程名称:java面对对象编程-俄罗斯方块视频教程  俄罗斯方块视频教程 $ X0 X1 Z: W4 P3 T  e. m3 q百度网盘下载链接: . M% x- I- V5 p( J 游 ...

  8. java性能实战_【从零单排】Java性能排查实战模拟

    当线上发生了性能问题时,需要我们快速定位问题.本文模拟了一次内存泄漏,从零教学一步步手动排查. 模拟事故现场 使用如下代码模拟内存泄漏.起了几个问题线程(在不停地创建很大的StringBuilder) ...

  9. 如何显示远程桌面_库卡机器人之远程桌面RDP

    前面已经介绍过使用VNC和RSV来实现库卡机器人的远程连接,其实还有一些方法,比如Teamviewer或Virture Remote Pendant(简称VRP),这里就不再介绍如何来实现.今天主要介 ...

  10. java 底层运行_从表面到底层丨Java和JVM的运行原理,现在带给你

    Java,编程语言,被创造于90年代初,在经历了这么多年的风风雨雨,Java已经成长为世界第一的编程语言,根据往期以及目前的数据来看,Java的使用频率为全球第一,即使偶尔会有第二第三的情况,但是这依 ...

最新文章

  1. CF858F Wizard's Tour 解题报告
  2. 读取无线手柄数据_《宇宙机器人》×PS5手柄使用体验:登月级进化
  3. 三星Galaxy S22系列零部件开始量产:搭载骁龙898 最早1月亮相
  4. C++安全方向opensssl(三)3.1 什么是单项散列函数
  5. macbook 系统 php 版本和 web 的 php 版本不一样,brew link php 失败
  6. Kafka学习之broker配置(0.8.1版)(转)
  7. 什么是短信接口API
  8. python爬虫爬取下厨房食谱,周末聚餐真的停不下来
  9. [bzoj4698][SDOI2008]Sandy的卡片
  10. 【技巧】如何搜索公众号内文章
  11. c语言笔试程序改错题,C语言笔试--程序改错题.doc
  12. memcached(十三)注意事项
  13. 轴承故障诊断之时域指标
  14. 计算机系统权限授权,win 7 期间版操作系统的权限说明
  15. 使用mysql_upgrade升级mysql5.1至5.6的数据库升级实施方案
  16. 【值得收藏】一份非常完整的Mysql规范
  17. 原生JS中的三大家族(offset/scroll/client)与jQuery中对应的方法
  18. 逐渐告别尴尬“测速期”,英特尔展示 5G 多领域应用
  19. 网络编程Socket基础
  20. python导入excel数据-如何将Excel导入Python之中呢?

热门文章

  1. java完成登录页面+连接数据库
  2. t470换屏线_硬件笔记之Thinkpad T470P更换2K屏幕
  3. [转]win10 vs2010安装教程(超详细,附下载链接)
  4. 显示器尺寸对照表_常见像素和显示屏大小对照表
  5. WPF 程序加载PGIS性能问题
  6. linux检测摄像头驱动程序,linux usb 摄像头测试软件
  7. android获取root代码,Android获取ROOT权限的实例代码
  8. java hostwrite_Java IOUtils.write方法代碼示例
  9. 运用Fluxion高效破解WiFi密码
  10. 【F2FS LFS SSR】华为如何打造智能终端的有趣灵魂?(上)