Idea本地debug远程服务器调试

本文介绍两种进行远程调试的方法:一种是在启动命令中直接设置调试参数,另一种是在打包插件中配置。详细展示了如何配置Idea进行远程调试,并确保调试过程顺利。

在工作中遇到了需要远程调试程序的问题,需要本地远程debug代码。

下面讲解两种方式,方式一是我觉得最舒服的解决方案大家可以参考一下。

方式一和方式二首先只是配置远程服务端的参数,后面还有Idea连接的配置(这里因为远程服务端的配置包括启动命令可能有所不同,Idea的配置基本相同,所以放到了最后统一描述)。

服务端的配置

方式一:

通过命令启动jar包

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=n -jar  xxx.jar

这种方式直接,不需要在打包插件中添加内容

完整命令:

端口号为:5005 这个是远程调试的端口号

-Dspring.cloud.nacos.config.server-addr=127.0.0.1:8848

-Dspring.cloud.nacos.config.namespace=test 

这两行命令为获取配置文件的命令,如果没有也可以不要。

test.jar 这个为启动的jar包

eg:
java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=n -jar -Dfile.encoding=utf-8 -Dspring.cloud.nacos.config.server-addr=127.0.0.1:8848 -Dspring.cloud.nacos.config.namespace=test  -Xms512m -Xmx512m test.jar >/dev/null 2>&1  &
 

方式二:

需要在打包插件中加入configuration标签中的内容,然后打包发布到服务器上

 <build>
        <finalName>Test</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n</jvmArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

这里需要注意的是,远程连接的端口号要跟后面Idea配置的相同。

通过命令启动jar包

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

Idea的配置

上述远程配置和启动命令有所不同,但是Idea的配置和使用是相同的。

步骤一:

进入后添加remote

 这里要注意host和port;一个是服务的远程ip地址,一个是端口号,这些要跟远程服务的配置相同。

然后启动

 如果出现如图所示说明启动成功。

 然后调用接口,可以正常进入debug。

 

 

### 配置IntelliJ IDEA实现对服务器Java应用程序(以JAR形式部署)的远程Debug #### 修改启动命令 为了使服务器上的Java应用程序能够被远程调试,需要修改其启动命令来启用JDWP(Java Debug Wire Protocol)。这可以通过向`java`命令添加特定参数完成。对于一个典型的Spring Boot JAR包,在启动脚本中加入如下选项可以实现在指定端口上等待调试器连接: ```bash nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 \ -Duser.timezone=GMT+08 -Dserver_name=${appname} $JAVA_OPT -jar ${jarname} \ --spring.cloud.nacos.discovery.namespace=${namespace} \ --spring.cloud.nacos.config.namespace=${namespace} \ --spring.profiles.active=dev &> ${appname}.log 2>&1 & ``` 注意这里的`address=*:5005`表示允许任何IP地址访问该调试端口[^4]。 #### 创建Remote JVM Debug配置 在本地开发环境中打开IntelliJ IDEA并按照以下步骤创建一个新的Run/Debug Configuration: - **Name**: 输入配置的名字,比如 `Remote Debug`. - **Type**: 选择 `Remote`. - **Host and Port**: 设置主机名或IP以及之前定义好的端口号(这里是`localhost` 或实际服务器 IP 和 `5005`)。 确保勾选了“Allow unsigned applications starting”,如果目标机器的安全策略不允许未签名的应用程序启动的话[^1]。 #### 连接至远程进程 当一切准备就绪之后,点击右上方绿色虫子图标旁边的下拉菜单中的新创建的 Remote Debug configuration 来启动调试会话。此时IDEA将会尝试连接到远端正在运行的服务实例,并允许设置断点、单步执行等功能来进行有效的故障排查工作。 #### 安全性和防火墙考虑 由于开启了网络接口供外部设备接入,因此需要注意网络安全方面的问题。建议仅限于信任环境内部署此功能;另外还需确认云服务商处已开放相应TCP端口以便建立成功握手过程[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值