Intellij IDEA 远程调试Linux上的Java程序

  1. 环境配置

window10,安装Intellij IDEA+JDK8;(Java开发环境自行搭建)

Linux,安装JDK8;(Java开发环境自行搭建) 

2. Intellij IDEA配置远程连接

打开配置界面

选择远程连接

远程连接配置

3. Linux主机配置

(1)上传需要调试的jar文件,一定要与本地的jar文件一致;(上传文件的地址可以自选)

(2)如果之前Linux主机上有运行该程序,需要停掉;

(3)确保上图中配置的端口没有被占用,而且不会被防火墙拦截;

(4)Linux主机启动待调试的程序,启动命令如下:

java -jar -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=n -jar 我们上传的应用.jar

其中 java -jar JAVA_Remote.jar是我们普通的java程序的执行命令;而加粗斜体的启动参数是对应上图连接配置的。这里重点提一下suspend参数,因为我使用默认的参数设定,一直和server端的程序连不上。suspend在这里默认的值是suspend=n.然而直接用这个默认的值,有的时候会出现异常。因为网络原因没有马上连上,程序就以为time out,没有debugger要来链接,就断开了。所以这个最好设置为suspend=y,这样就是强制server端的程序等到与intellij的debugger建立连接后才开始运行。

4. 启动Intellij IDEA调试

我们先启动Linux主机上的程序,然后再启动本地的调试。调试之前需要先本地设置好断点,另外

调试选项也要选择上面配置的远程连接。点击调试就可以调试程序了。

5. 总结

(1)程序是一模一样的两份,本地一份,远程Linux主机一份

(2)远程linux主机上程序先启动,等待本地程序连接。

### 在 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、付费专栏及课程。

余额充值