温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

IDEA远程部署调试Java应用程序的过程是怎样的

发布时间:2021-10-08 09:42:31 来源:亿速云 阅读:97 作者:柒染 栏目:开发技术

这期内容当中小编将会给大家带来有关IDEA远程部署调试Java应用程序的过程是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

    基本概述

    在工作中,我们可能会遇到本地无法连接开发环境数据库等资源,但又想在本地直接开发、调试。

    这时候就能通过IDEARun on ...功能实现。

    其原理是通过SSH连上远程服务器,部署应用到远程服务器后,本地连接上远程服务器部署的应用。

    PS:这种操作方式比在远程服务器上搭建代理服务,安全性要高的多得多。

    准备工作

    远程服务器准备

    安装JDK
    [root@switch-sz-service-test ~]# yum install -y java-1.8.0-openjdk-devel.x86_64
    
    # 可以看到Java的版本是1.8
    [root@switch-sz-service-test ~]# java -version
    openjdk version "1.8.0_302"
    OpenJDK Runtime Environment (build 1.8.0_302-b08)
    OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)
    配置JAVA_HOME
    # 可以看到JAVA_HOME是/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64
    [root@switch-sz-service-test ~]# find / -name java 
    /etc/pki/ca-trust/extracted/java
    /etc/pki/java
    /etc/alternatives/java
    /etc/java
    /var/lib/alternatives/java
    /usr/bin/java
    /usr/lib/java
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64/jre/bin/java
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64/bin/java
    /usr/lib/jvm/java
    /usr/share/bash-completion/completions/java
    /usr/share/java
    [root@switch-sz-service-test ~]# ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64
    total 180
    -rw-r--r-- 1 root root   1522 Jul 22 01:18 ASSEMBLY_EXCEPTION
    drwxr-xr-x 2 root root   4096 Oct  4 00:29 bin
    drwxr-xr-x 3 root root    132 Oct  4 00:29 include
    drwxr-xr-x 4 root root     95 Oct  4 00:29 jre
    drwxr-xr-x 3 root root    144 Oct  4 00:29 lib
    -rw-r--r-- 1 root root  19274 Jul 22 01:18 LICENSE
    drwxr-xr-x 2 root root    204 Oct  4 00:29 tapset
    -rw-r--r-- 1 root root 155003 Jul 22 01:18 THIRD_PARTY_README
    
    # 配置JAVA_HOME
    [root@switch-sz-service-test ~]# vim /etc/profile
    
    # 在最后面添加上如下语句
    JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64
    export JAVA_HOME
    
    # 可以看到已经配置好了JAVA_HOME了
    [root@switch-sz-service-test ~]# source /etc/profile
    [root@switch-sz-service-test ~]# echo $JAVA_HOME
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64
    [root@switch-sz-service-test ~]#

    项目准备

    创建一个SpringBoot项目

    使用Spring Initializr创建一个SpringBoot项目,参考项目:springboot-remote-deploy-demo

    IDEA远程部署调试Java应用程序的过程是怎样的

    创建一个Controller类
    package com.switchvov.springboot.remote.deploy.demo.controller;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @author switch
     * @since 2021/10/3
     */
    @RestController
    @RequestMapping("/hello")
    @Slf4j
    public class HelloController {
        @GetMapping("/{name}")
        public String hello(@PathVariable("name") String name) {
            String hello = "hello " + name;
            log.info(hello);
            return hello;
        }
    }
    启动应用,验证结果
    package com.switchvov.springboot.remote.deploy.demo;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class SpringbootRemoteDeployDemoApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringbootRemoteDeployDemoApplication.class, args);
        }
    }
    $ curl http://127.0.0.1:8080/hello/world
    hello world%

    PS:从如上步骤,可以看到已经成功在本地执行了,接下来就是要让他远程部署到服务器上,并且可以调试。

    应用配置

    修改应用配置

    IDEA远程部署调试Java应用程序的过程是怎样的

    右键点击SpringbootRemoteDeployDemoApplication类旁边的启动符,弹出选项框,点击Modify Run Configuration...选项,弹出界面如下图

    创建远程服务器

    IDEA远程部署调试Java应用程序的过程是怎样的

    左键点击Run on选项框,弹出选项框,点击SSH...选项,弹出界面如下图

    IDEA远程部署调试Java应用程序的过程是怎样的

    输入服务器地址Host,用户名Username,点击Next按钮,跳转界面如下图

    IDEA远程部署调试Java应用程序的过程是怎样的

    输入密码Password(或者使用密钥),点击Next跳转界面如下图

    IDEA远程部署调试Java应用程序的过程是怎样的

    这一步,主要是验证是否能登录上服务器,以及服务器上基本环境是否安装好,点击Next跳转界面如下图

    Successfully connected to root@120.78.218.44:22
    
    > pwd
    /root
    Command finished with exit code 0
    
    
    Checking rsync connection...
    /usr/bin/rsync -n -e "ssh -p 22 " root@120.78.218.44:
    
    root@120.78.218.44's password: 
    
    
    dr-xr-x---         190 2021/10/04 00:56:11 .
    
    Process finished with exit code 0
    
    
    Starting introspection for Java...
    > echo ${SHELL}
    /bin/bash
    Command finished with exit code 0
    > echo ${JAVA_HOME}
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64
    Command finished with exit code 0
    > java -version
    openjdk version "1.8.0_302"
    OpenJDK Runtime Environment (build 1.8.0_302-b08)
    OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)
    Command finished with exit code 0
    
    Introspection completed

    IDEA远程部署调试Java应用程序的过程是怎样的

    可以看到项目部署路径Project path on target,JDK Home路径JDK home path以及JDK版本JDK version都已经设置好了,点击Finish返回之前的界面

    PS:可以自己修改部署路径之类的配置

    保存应用配置

    IDEA远程部署调试Java应用程序的过程是怎样的

    可以看到远程服务器已经配置好了,点击OK按钮配置完成

    验证结果

    本地验证

    IDEA远程部署调试Java应用程序的过程是怎样的

    点击SpringbootRemoteDeployDemoApplication的启动按钮,在启动日志中可以看到已经部署到服务器上,同时也能看到本地端口63006映射到了服务器的8080端口。

    $ curl http://localhost:63006/hello/world
    hello world%

    在本地访问映射到服务器的端口63006,也能正常访问。

    PS:可以启动,当然也可以进行调试。

    服务器验证

    在远程服务器上,可以看到springboot-remote-deploy-demo已经被部署在/root路径下了,且访问http://127.0.0.1:8080/hello/world会正确返回hello world

    [root@switch-sz-service-test ~]# pwd
    /root
    [root@switch-sz-service-test ~]# ll
    total 4
    drwxr-xr-x 38 root root 4096 Oct  4 01:08 springboot-remote-deploy-demo
    [root@switch-sz-service-test ~]# curl http://127.0.0.1:8080/hello/world
    hello world[root@switch-sz-service-test ~]#

    上述就是小编为大家分享的IDEA远程部署调试Java应用程序的过程是怎样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI