IDEA实现java远程调试

简介: 使用IDEA实现java远程调试. idea配置. 启动所要连接的服务对应监测端口开放. idea开启远程连接. 必须准备的条件为啥要用呢?唉,其实有些线上问题,其实你怎么log也不如远程调试一下呀。

idea配置


1.png


2.png


3.png


启动所要连接的服务



java -jar  -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005   *****.jar


参数说明


transport:debugee与debuger调试时之间的通讯数据传输方式。

server:是否监听debuger的调试请求。

suspend:是否等待启动,也即设置是否在debuger调试链接建立后才启动debugee JVM。

address:debugee的地址,用于debuger建立调试链接。

本地的为debugger,远程的为debugee。


对应监测端口开放



启动命令中 5005就是服务对外提供的远程调试访问端口,服务器防火墙要对应开放,否则也连接不上。


命令

1、开启防火墙

systemctl start firewalld

2、开放指定端口

firewall-cmd --zone=public --add-port=1935/tcp --permanent

命令含义:

–zone #作用域

–add-port=1935/tcp #添加端口,格式为:端口/通讯协议

–permanent #永久生效,没有此参数重启后失效

3、重启防火墙

firewall-cmd --reload

4 、查看对外开放的所有端口

firewall-cmd --list-ports


idea开启远程连接



1y.png

链接成功后控制台会输出以下信息


1.png


必须准备的条件


你的服务代码,必须与你idea远程连接的本地代码一模一样,否则调试可能遇到你无法想象的问题。



相关文章
|
1月前
|
Java 编译器 开发工具
Java基础学习笔记——idea篇
JDK由JRE(包含JVM和核心类库)和开发工具箱(如javac编译器和java运行工具)组成。Java项目结构包括Project、Module、Package和Class。IDEA快捷键包括:生成main方法(main psvm)、复制代码(Ctrl+D)、删除代码(Ctrl+Y/X)、格式化代码(Ctrl+Alt+L)、重命名(Shift+F6)等。
17 0
|
1天前
|
Java 网络安全 网络协议
IDEA实现java远程调试
IDEA实现java远程调试
15 3
|
12天前
|
Java
IDEA云行项目提示Error: java: OutOfMemoryError
IDEA云行项目提示Error: java: OutOfMemoryError
|
12天前
|
Java 微服务
IDEA报错There is insufficient memory for the Java Runtime Environment to continue.
IDEA报错There is insufficient memory for the Java Runtime Environment to continue.
|
27天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
|
27天前
|
传感器 小程序 Java
Java+saas模式 智慧校园系统源码Java Android +MySQL+ IDEA 多校运营数字化校园云平台源码
Java+saas模式 智慧校园系统源码Java Android +MySQL+ IDEA 多校运营数字化校园云平台源码 智慧校园即智慧化的校园,也指按智慧化标准进行的校园建设,按标准《智慧校园总体框架》中对智慧校园的标准定义是:物理空间和信息空间的有机衔接,使任何人、任何时间、任何地点都能便捷的获取资源和服务。
20 1
|
1月前
|
Java 应用服务中间件 Maven
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
20 1
|
1天前
|
Java
Java一分钟:线程协作:wait(), notify(), notifyAll()
【5月更文挑战第11天】本文介绍了Java多线程编程中的`wait()`, `notify()`, `notifyAll()`方法,它们用于线程间通信和同步。这些方法在`synchronized`代码块中使用,控制线程执行和资源访问。文章讨论了常见问题,如死锁、未捕获异常、同步使用错误及通知错误,并提供了生产者-消费者模型的示例代码,强调理解并正确使用这些方法对实现线程协作的重要性。
9 3