溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的過程是怎樣的

發(fā)布時(shí)間:2021-10-08 09:42:31 來源:億速云 閱讀:104 作者:柒染 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的過程是怎樣的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

    基本概述

    在工作中,我們可能會(huì)遇到本地?zé)o法連接開發(fā)環(huán)境數(shù)據(jù)庫等資源,但又想在本地直接開發(fā)、調(diào)試。

    這時(shí)候就能通過IDEARun on ...功能實(shí)現(xiàn)。

    其原理是通過SSH連上遠(yuǎn)程服務(wù)器,部署應(yīng)用到遠(yuǎn)程服務(wù)器后,本地連接上遠(yuǎn)程服務(wù)器部署的應(yīng)用。

    PS:這種操作方式比在遠(yuǎn)程服務(wù)器上搭建代理服務(wù),安全性要高的多得多。

    準(zhǔn)備工作

    遠(yuǎn)程服務(wù)器準(zhǔn)備

    安裝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
    
    # 可以看到已經(jīng)配置好了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 ~]#

    項(xiàng)目準(zhǔn)備

    創(chuàng)建一個(gè)SpringBoot項(xiàng)目

    使用Spring Initializr創(chuàng)建一個(gè)SpringBoot項(xiàng)目,參考項(xiàng)目:springboot-remote-deploy-demo

    IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的過程是怎樣的

    創(chuàng)建一個(gè)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;
        }
    }
    啟動(dòng)應(yīng)用,驗(yàn)證結(jié)果
    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:從如上步驟,可以看到已經(jīng)成功在本地執(zhí)行了,接下來就是要讓他遠(yuǎn)程部署到服務(wù)器上,并且可以調(diào)試。

    應(yīng)用配置

    修改應(yīng)用配置

    IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的過程是怎樣的

    右鍵點(diǎn)擊SpringbootRemoteDeployDemoApplication類旁邊的啟動(dòng)符,彈出選項(xiàng)框,點(diǎn)擊Modify Run Configuration...選項(xiàng),彈出界面如下圖

    創(chuàng)建遠(yuǎn)程服務(wù)器

    IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的過程是怎樣的

    左鍵點(diǎn)擊Run on選項(xiàng)框,彈出選項(xiàng)框,點(diǎn)擊SSH...選項(xiàng),彈出界面如下圖

    IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的過程是怎樣的

    輸入服務(wù)器地址Host,用戶名Username,點(diǎn)擊Next按鈕,跳轉(zhuǎn)界面如下圖

    IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的過程是怎樣的

    輸入密碼Password(或者使用密鑰),點(diǎn)擊Next跳轉(zhuǎn)界面如下圖

    IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的過程是怎樣的

    這一步,主要是驗(yàn)證是否能登錄上服務(wù)器,以及服務(wù)器上基本環(huán)境是否安裝好,點(diǎn)擊Next跳轉(zhuǎn)界面如下圖

    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遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的過程是怎樣的

    可以看到項(xiàng)目部署路徑Project path on target,JDK Home路徑JDK home path以及JDK版本JDK version都已經(jīng)設(shè)置好了,點(diǎn)擊Finish返回之前的界面

    PS:可以自己修改部署路徑之類的配置

    保存應(yīng)用配置

    IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的過程是怎樣的

    可以看到遠(yuǎn)程服務(wù)器已經(jīng)配置好了,點(diǎn)擊OK按鈕配置完成

    驗(yàn)證結(jié)果

    本地驗(yàn)證

    IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的過程是怎樣的

    點(diǎn)擊SpringbootRemoteDeployDemoApplication的啟動(dòng)按鈕,在啟動(dòng)日志中可以看到已經(jīng)部署到服務(wù)器上,同時(shí)也能看到本地端口63006映射到了服務(wù)器的8080端口。

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

    在本地訪問映射到服務(wù)器的端口63006,也能正常訪問。

    PS:可以啟動(dòng),當(dāng)然也可以進(jìn)行調(diào)試。

    服務(wù)器驗(yàn)證

    在遠(yuǎn)程服務(wù)器上,可以看到springboot-remote-deploy-demo已經(jīng)被部署在/root路徑下了,且訪問http://127.0.0.1:8080/hello/world會(huì)正確返回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遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的過程是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI