关于java:IDEA远程部署调试Java应用程序

20次阅读

共计 4545 个字符,预计需要花费 12 分钟才能阅读完成。

IDEA 近程部署调试 Java 应用程序

[TOC]

根本概述

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

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

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

<font color=’red’>PS:这种操作形式比在近程服务器上搭建代理服务,安全性要高的多得多。</font>

筹备工作

近程服务器筹备

装置 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

创立一个 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:从如上步骤,能够看到曾经胜利在本地执行了,接下来就是要 <font color=’red’> 让他近程部署到服务器上,并且能够调试 </font>。

利用配置

批改利用配置

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

创立近程服务器

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

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

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

这一步,次要是验证是否能登录上服务器,以及服务器上根本环境是否装置好,点击 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

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

PS:能够本人批改部署门路之类的配置

保留利用配置

能够看到近程服务器曾经配置好了,点击 OK 按钮配置实现

验证后果

本地验证

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

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

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

<font color=’red’>PS:能够启动,当然也能够进行调试。</font>

服务器验证

在近程服务器上,能够看到 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 ~]#

参考文档

  • Spring Initializr
  • springboot-remote-deploy-demo

    分享并记录所学所见

正文完
 0