idea java 远程调试_如何使用 Idea 远程调试 Java 代码
起因
这几天,我做的项目中需要使用第三方的 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 代码相关推荐
- java 安卓调试_【转】Android 调试技术
一.JAVA层单步调试 二.Native层单步调试 三.JAVA层堆栈打印 1. 在指定的函数内打印相关java调用 Log.d(TAG,Log.getStackTraceString(new Thr ...
- linux远程 java jar包_给Linux服务器远程安装jdk
给Linux服务器远程安装jdk 1.下载jdk 2.上传jar包到Linux服务器上 2.1.服务器上新建一个JAVA文件,存放jdk文件 # mkdir /usr/java 2.2.本地上 ...
- eclipse进行调试_使用Eclipse平台进行调试
eclipse进行调试 编者注 :以下文章最初由Pawel Leszek于2003年5月撰写,并于2007年4月由Chris Aniszczyk更新. Eclipse调试器和Debug视图 Eclip ...
- netbeans调试_从NetBeans运行和调试WildFly Swarm应用程序
netbeans调试 使用NetBeans的Java EE开发人员习惯于直接在NetBeans所选择的应用程序服务器中运行和调试其瘦战应用程序. 在开发打包为über或镂空jars的微服务时,您期望使 ...
- java核心面试_前100多个核心Java面试问题
java核心面试 Core Java interview questions help you in preparing for java based interviews. Whether you ...
- java 工作业绩_个人年度工作总结报告java
<个人年度工作总结报告java.doc>由会员分享,可免费在线阅读全文,更多与<个人年度工作总结报告java>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存 ...
- java俄罗斯方块视频_[VIP视频]【A0233】java面对对象编程-俄罗斯方块视频教程 高清视频 百度云 百度网...
Java视频教程名称:java面对对象编程-俄罗斯方块视频教程 俄罗斯方块视频教程 $ X0 X1 Z: W4 P3 T e. m3 q百度网盘下载链接: . M% x- I- V5 p( J 游 ...
- java性能实战_【从零单排】Java性能排查实战模拟
当线上发生了性能问题时,需要我们快速定位问题.本文模拟了一次内存泄漏,从零教学一步步手动排查. 模拟事故现场 使用如下代码模拟内存泄漏.起了几个问题线程(在不停地创建很大的StringBuilder) ...
- 如何显示远程桌面_库卡机器人之远程桌面RDP
前面已经介绍过使用VNC和RSV来实现库卡机器人的远程连接,其实还有一些方法,比如Teamviewer或Virture Remote Pendant(简称VRP),这里就不再介绍如何来实现.今天主要介 ...
- java 底层运行_从表面到底层丨Java和JVM的运行原理,现在带给你
Java,编程语言,被创造于90年代初,在经历了这么多年的风风雨雨,Java已经成长为世界第一的编程语言,根据往期以及目前的数据来看,Java的使用频率为全球第一,即使偶尔会有第二第三的情况,但是这依 ...
最新文章
- CF858F Wizard's Tour 解题报告
- 读取无线手柄数据_《宇宙机器人》×PS5手柄使用体验:登月级进化
- 三星Galaxy S22系列零部件开始量产:搭载骁龙898 最早1月亮相
- C++安全方向opensssl(三)3.1 什么是单项散列函数
- macbook 系统 php 版本和 web 的 php 版本不一样,brew link php 失败
- Kafka学习之broker配置(0.8.1版)(转)
- 什么是短信接口API
- python爬虫爬取下厨房食谱,周末聚餐真的停不下来
- [bzoj4698][SDOI2008]Sandy的卡片
- 【技巧】如何搜索公众号内文章
- c语言笔试程序改错题,C语言笔试--程序改错题.doc
- memcached(十三)注意事项
- 轴承故障诊断之时域指标
- 计算机系统权限授权,win 7 期间版操作系统的权限说明
- 使用mysql_upgrade升级mysql5.1至5.6的数据库升级实施方案
- 【值得收藏】一份非常完整的Mysql规范
- 原生JS中的三大家族(offset/scroll/client)与jQuery中对应的方法
- 逐渐告别尴尬“测速期”,英特尔展示 5G 多领域应用
- 网络编程Socket基础
- python导入excel数据-如何将Excel导入Python之中呢?
热门文章
- java完成登录页面+连接数据库
- t470换屏线_硬件笔记之Thinkpad T470P更换2K屏幕
- [转]win10 vs2010安装教程(超详细,附下载链接)
- 显示器尺寸对照表_常见像素和显示屏大小对照表
- WPF 程序加载PGIS性能问题
- linux检测摄像头驱动程序,linux usb 摄像头测试软件
- android获取root代码,Android获取ROOT权限的实例代码
- java hostwrite_Java IOUtils.write方法代碼示例
- 运用Fluxion高效破解WiFi密码
- 【F2FS LFS SSR】华为如何打造智能终端的有趣灵魂?(上)