转自 http://blog.csdn.net/hongchangfirst/article/details/44191925

一、远程debug原理

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

被debug的机器需要开启debug模式,debug使用的客户端可以是eclipse,总之我使用eclipse已经成功了。

二、操作步骤

1.服务端设置

由于我们经常将程序部署到linux机器上,所以通常使用的是war、tar包或者直接使用可运行的jar包,由于近来spring-boot的盛行,直接使用可执行的jar包成为了最流行的部署方式:

jdk1.7之后使用命令:

java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -jar you-runnable-jar.jar

  • jdwp:是 JavaDebug Wire Protocol的缩写
  • server=y表示是监听其他debugclient端的请求
  • address=8000表示服务会在端口号8000监听debug请求,客户端必须设置这个端口号才能进行dubug
  • suspend表示是否在调试客户端建立连接之后启动 VM。如果为y,那么当前的VM就是suspend直到有debug client连接进来才开始执行程序。如果你的程序不是服务器监听模式并且很快就执行完毕的,那么可以选择在y来阻塞它的启动。

当出现以下提示的时候表示服务端已经使用deubg模式启动:

2.客户端设置

eclipse毕竟还是我们最熟悉的IDE,所以使用它作为dubug的客户端。

3.测试

使用客户端发起一个请求,可以直接eclipse会直接进入debug模式。

【Java远程debug】的更多相关文章

  1. java 远程debug

    在启动jar包添加如下参数16091是端口 java -Xdebug -Xrunjdwp:transport=dt_socket,address=16091,server=y,suspend=n -j ...

  2. 远程debug调试java代码

    远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAV ...

  3. java项目 远程debug

    AVA项目无法像PHP那样可以随时修改文件内容进行调试,调试可以借助eclipse,本地代码的话很容易在本地debug,但如果代码已经打包部署在linux上呢?可以进行远程debug   很简单,只需 ...

  4. Java高效开发-远程debug

    1.前言 "这怎么回事?在本地还好好,放到服务器就不行了.这该怎么排查,日志也看不出来啥呀",日常开发中经常会出现这种问题,这时候就可以尝试idea远程debug的模式试试 2.使 ...

  5. java war包 远程debug出现的问题解决,学会查看日志

    开启远程debug之后,8005 关闭tomcat 又启动不了了.. netstat -lnp 未发现8005接口 eclipse 内远程链接到服务器,debug 下发现服务器线程启动也存在问题.很多 ...

  6. IntelliJ IDEA 15.0.2远程debug tomcat

    背景 在最近的java项目中使用了linux环境下编译的so文件,所以无法在window环境下debug,故此有了这篇文章 环境 jdk:jdk-8u101-linux-x64 os:CentOS r ...

  7. eclipse远程debug

    由于一般比较正规项目,都会有好几个版本,有时候在测试版本的时候,一切都好好的,然后提交到其他版本之后会有各种各样的问题,这个时候如果不能快速准确的定位到问题,那么我们就需要用 eclipse远程deb ...

  8. IDEA 配置远程debug

    1. 启动远程服务配置debug参数 远程服务启动时配置如下debug相关参数 java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address= ...

  9. 如何开启远程debug调试功能?

    远程debug步骤: 1.vi /usr/local/sa/tomcat-ui/bin/catalina.sh 最顶上加export JPDA_ADDRESS=12345 2.vi /usr/loca ...

随机推荐

  1. Emotion Debt 2017/1/6

    原文 We can't move beyond the past until our emotional debts are paid. Many people today live under th ...

  2. laypage分页

    1.分页 laypage({ cont:$("#page"), //容器,仅支持id名\原生DOM对象,jquery对象 pages:, //总页数 skip:true, //是否 ...

  3. CPU阿甘之烦恼

    转自“码农翻身”公共号,原文地址CPU阿甘之烦恼 总结:(程序加载到内存运行的演变过程) 内存存放程序.OS负责加载程序到内存.CPU负责运行内存中的程序 1.串行:加载一个完整程序到内存,CPU运行 ...

  4. Mac 配置 php-fpm 时出现'/private/etc/php-fpm.conf': No such file or directory (2)

    https://github.com/musicode/test/issues/5 Mac 自带 php-fpm,在终端执行 php-fpm,会报如下错误: ERROR: failed to open ...

  5. 报错com/android/dx/command/dexer/Main : Unsupported major.minor version 52.0

    看着错误信息应该是从高版本换成低版本报的错误,然而我的JDK并没有变动.会像昨天走之前干了什么? 自己在AndroidStudio上倒弄自己的小项目,更新了build tools到24了 删除24,e ...

  6. Intellij Idea/Webstorm/Phpstorm 的高效快捷键

    1. shift + F6可以理解为F2的豪华重量版,不但可以重命名文件名,而且可以命名函数名,函数名可以搜索引用的文件,还可以重命名局部变量.还可以重命名标签名.在sublime text中有个类似 ...

  7. R可视化lend_club 全球最大的P2P平台数据75W条

    lend_club 全球最大的P2P平台2007~2012年贷款数据百度云下载. 此文章基于R语言做简单分析. rm(list=ls()) #清除变量 gc() #释放内存 step1 考虑到后续分析 ...

  8. ubuntu14.04下搭建python+mysql环境

    简略记录ubuntu14.04下搭建python操作的mysql服务器的过程和其中遇到的问题及解决方法. 第一部分: 安装mysql 安装步骤:1. sudo apt-get install mysq ...

  9. 常用ubuntu命令

    解压缩.7z sudo apt-get install p7zip-full 7z x PACKAGE.7z 查看图片 eog A.png 关闭打开触摸板(触点) sudo rmmod psmouse ...

  10. angularjs $scope.$apply 方法详解

    myApp.controller('firstController',function($scope,$interval){ $scope.date = new Date(); setInterval ...