IDEA远程执行详解

新建一个springboot项目

 

 

新建一个java class:

@RestController
public class TestController {

    @RequestMapping("/test")
    public Integer test() {
        int i = 0;
        i++;
        return i;
    }

}

打包:mvn clean package

生成jar包

  

放到远程服务器上(也可以在本地cmd命令下调试,host为localhost),以Jar包的方式执行

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8010 -jar demo-0.0.1-SNAPSHOT.jar

 

 

其中 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8010 是在IDEA里配置参数时复制过来的。各参数含义如下:

transport             用于在调试程序和 VM 使用的进程之间通讯。 
dt_socket             套接字传输。 
dt_shmem              共享内存传输,仅限于 Windows。 
server=y/n            VM 是否需要作为调试服务器执行。 
address=8010          调试服务器的端口号,客户端用来连接服务器的端口号。 
suspend=y/n           是否在调试客户端建立连接之后启动 VM 。

当然,也可以在服务器的启动脚本里通过添加参数的方式执行。

 

IDEA的配置:

 

 添加一个Remote

 

 

 然后开始debug,出现下面的信息说明连接成功:

Connected to the target VM, address: '10.193.215.16:8010', transport: 'socket'

 

 访问网址:

http://10.193.215.16:8080/test

会发现程序阻塞。进入断点,就可以开始调试了。

 

 

如果你想修改默认8080服务端口,比如改成8020,可以在application.properties配置如下:

server.port=8020

 

 然后服务器端启动脚本要加上-Dserver.port=8020 参数:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8010 -Dserver.port=8020 -jar demo-0.0.1-SNAPSHOT.jar

 

posted @ 2019-09-16 21:15  梦里南柯  阅读(4640)  评论(0编辑  收藏  举报