IDEA 远程debug linux(CentOS7)java应用的过程总结

本文总结了如何使用IDEA远程debug Linux(CentOS7)上的Java应用。涉及配置debug环境,包括Windows 10、JDK 1.8和IDEA,以及CentOS7、JDK 8和Tomcat 9。通过设置虚拟机的IP和端口监听,配置IDEA的远程运行配置,实现了对Java应用或Tomcat web应用的调试。过程中遇到了端口占用和版本兼容性问题,解决办法包括修改防火墙规则和调整JDK版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在网上找了很多解释和应用,不过还是花了很多时间摸索,所以在这里写一下自己的总结。

一. debug 环境
  1. 本地:window10、 jdk1.8 、idea
  2. 虚拟机:CentOS7、jdk8、tomcat9
二.如何远程链接java引用并且debug
  1. 在linux系统上开启java引用的端口监听,将java应用的debug绑定到端口,等待本地idea链接。
  2. 本地设置远程debug的环境,将本地idea链接到远程linux系统,进行java应用调试。
三.具体操作
  1. 首先在本地idea配置一个运行配置(remote):点击run->Edit Configuration(下拉idea右上角的下拉框,点击Edit Configuration)。
    Edit Configuration
    (以上两处二选一)
  2. 设置虚拟机的ip地址以及虚拟机监听的端口号。
    设置端口
    红色为虚拟机ip地址以及端口号,黄色为需要复制到虚拟机的内容,设置好后点击保存,并且最好重构项目。
  3. 当需要debug的应用为普通java应用时:打开虚拟机的应用debug,开启监听。
    在虚拟机输入命令行(黄色为从idea复制的字段,设置了虚拟机参数,最后为自己debug的jar包)
    java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 demo.jar
  4. 当需要debug的应用为部署在tomcat的web应用时方式1:(本人未尝试,为网上经验)
    在tomcat的bin目录中,新建setenv.sh文件,输入:(代码中的部分可按黄色字体部分修改,也可加上虚拟机参数)
    CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
  5. 当需要debug的应用为部署在tomcat的web应用时方式2:(本人未尝试,为网上经验)修改tomcat的bin目录下的Catalina.sh文件,在第一行加上(代码中的部分可按黄色字体部分修改,也可加上虚拟机参数)
    export JAVA_OPTS='-agentlib:jdwp=transport=dt_s
### 在 IntelliJ IDEA 中配置 Flink 环境 #### 1. 安装并配置 Flink 开发环境 为了在本地环境中顺利开发和测试 Flink 应用程序,在 Mac 上使用 IntelliJ IDEA 建议按照以下方式设置: - **安装 JDK 和 Maven**:确保已正确安装 Java Development Kit (JDK),因为这是构建和运行基于 Java 或 Scala 的项目所必需的基础组件;Maven 则用于管理项目的依赖关系。 - **下载 Apache Flink 发行版**:访问官方网站获取最新稳定版本,并解压至合适位置。对于 Windows 用户来说,可以通过执行 `start-cluster.bat` 文件来快速启动单节点集群[^4]。 - **创建新工程或导入已有项目**:打开 IDE 并新建一个 Maven 工程或者克隆 GitHub 上开源的 Flink 示例仓库作为起点。 #### 2. 添加必要的库文件 为了让应用程序能够识别 Flink API 及其扩展模块,需向 pom.xml 文件中加入官方推荐的核心依赖项[^1]: ```xml <dependencies> <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-java --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.12</artifactId> <version>${flink.version}</version> </dependency> <!-- Add other dependencies as needed... --> </dependencies> ``` #### 3. 设置远程调试参数 当目标是在生产环境下对作业进行诊断时,则可以考虑采用远程调试的方式来进行问题排查。这涉及到修改 JobManager 的启动脚本以包含 JDWP(Java Debug Wire Protocol)选项,从而允许外部工具通过网络端口与其建立连接[^2]。 例如,在 Linux/CentOS 系统上的操作步骤可能如下所示: ```bash cd ${FLINK_HOME}/bin/ ./jobmanager.sh start cluster -Djobmanager.web.port=8081 \ -D akka.remote.netty.tcp.hostname=localhost \ -D jobmanager.rpc.address=localhost \ -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 ``` 上述命令中的 `-agentlib:jdwp=` 参数指定了监听地址为任意 IP 地址 (`*`) ,端口号设为 5005 。注意这里的 `suspend=n` 表示不会暂停等待客户端连入后再继续初始化进程。 而对于想要直接从IDE内部发起请求的情况而言,只需简单调整一下 flink-conf.yaml 配置文档里的相应条目即可满足需求[^3]。 #### 4. 构建与部署流程 完成以上准备工作之后就可以着手编写业务逻辑代码了。待一切就绪后,利用内置插件一键打包成 JAR 包形式再上传给远端服务器执行。当然也可以借助于 CI/CD 流水线自动化整个过程提高效率。 最后提醒一点就是记得定期清理缓存以及重启服务以便及时生效所做的更改!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值