文章插图
文章插图
IDEA远程部署调试Java应用程序
[TOC]
基本概述
【idea怎么配置jdk环境变量 安装idea用配置jdk环境变量吗】在工作中,我们可能会遇到本地无法连接开发环境数据库等资源,但又想在本地直接开发、调试 。
这时候就能通过
IDEA
的Run on ...
功能实现 。其原理是通过
SSH
连上远程服务器,部署应用到远程服务器后,本地连接上远程服务器部署的应用 。PS:这种操作方式比在远程服务器上搭建代理服务,安全性要高的多得多 。
准备工作远程服务器准备安装JDK
[[email protected] ~]# yum install -y java-1.8.0-openjdk-devel.x86_64# 可以看到Java的版本是1.8[[email protected] ~]# java -versionopenjdk 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[[email protected] ~]# 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[[email protected] ~]# ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64total 180-rw-r--r-- 1 root root1522 Jul 22 01:18 ASSEMBLY_EXCEPTIONdrwxr-xr-x 2 root root4096 Oct4 00:29 bindrwxr-xr-x 3 root root132 Oct4 00:29 includedrwxr-xr-x 4 root root95 Oct4 00:29 jredrwxr-xr-x 3 root root144 Oct4 00:29 lib-rw-r--r-- 1 root root19274 Jul 22 01:18 LICENSEdrwxr-xr-x 2 root root204 Oct4 00:29 tapset-rw-r--r-- 1 root root 155003 Jul 22 01:18 THIRD_PARTY_README# 配置JAVA_HOME[[email protected] ~]# vim /etc/profile# 在最后面添加上如下语句JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64export JAVA_HOME# 可以看到已经配置好了JAVA_HOME了[[email protected] ~]# source /etc/profile[[email protected] ~]# echo $JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64[[email protected] ~]#
项目准备创建一个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 [email protected]@RequestMapping("/hello")@Slf4jpublic 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;@SpringBootApplicationpublic class SpringbootRemoteDeployDemoApplication {public static void main(String[] args) {SpringApplication.run(SpringbootRemoteDeployDemoApplication.class, args);}}
$ curl http://127.0.0.1:8080/hello/worldhello world%
PS:从如上步骤,可以看到已经成功在本地执行了,接下来就是要让他远程部署到服务器上,并且可以调试 。应用配置修改应用配置
右键点击
SpringbootRemoteDeployDemoApplication
类旁边的启动符,弹出选项框,点击Modify Run Configuration...
选项,弹出界面如下图创建远程服务器
左键点击
Run on
选项框,弹出选项框,点击SSH...
选项,弹出界面如下图输入服务器地址
Host
,用户名Username
,点击Next
按钮,跳转界面如下图输入密码
Password
(或者使用密钥),点击Next
跳转界面如下图这一步,主要是验证是否能登录上服务器,以及服务器上基本环境是否安装好,点击
Next
跳转界面如下图Successfully connected to [email protected]:22> pwd/rootCommand finished with exit code 0Checking rsync connection.../usr/bin/rsync -n -e "ssh -p 22 " [email protected]:[email protected]'s password: dr-xr-x---190 2021/10/04 00:56:11 .Process finished with exit code 0Starting introspection for Java...> echo ${SHELL}/bin/bashCommand 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_64Command finished with exit code 0> java -versionopenjdk 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 0Introspection completed
可以看到项目部署路径Project path on target
,JDK Home路径JDK home path
以及JDK版本JDK version
都已经设置好了,点击Finish
返回之前的界面PS:可以自己修改部署路径之类的配置
保存应用配置
可以看到远程服务器已经配置好了,点击
OK
按钮配置完成验证结果本地验证
点击
SpringbootRemoteDeployDemoApplication
的启动按钮,在启动日志中可以看到已经部署到服务器上,同时也能看到本地端口63006
映射到了服务器的8080
端口 。$ curl http://localhost:63006/hello/worldhello world%
在本地访问映射到服务器的端口63006
,也能正常访问 。PS:可以启动,当然也可以进行调试 。
服务器验证
在远程服务器上,可以看到
springboot-remote-deploy-demo
已经被部署在/root
路径下了,且访问http://127.0.0.1:8080/hello/world
会正确返回hello world
。[[email protected] ~]# pwd/root[[email protected] ~]# lltotal 4drwxr-xr-x 38 root root 4096 Oct4 01:08 springboot-remote-deploy-demo[[email protected] ~]# curl http://127.0.0.1:8080/hello/worldhello world[[email protected] ~]#
- 联想z5参数配置详情 联想z5详细参数
- window10共享win7打印机设置 win7打印机共享到win10怎么设置
- 郑爽找代孕怎么回事 郑爽为什么怀不了孕
- 湖北美术生高考分数怎么算 美术生高考分数怎么算
- jsp手机如何打开 手机上jsp文件怎么打开方式
- ps怎么画一个圆形边框的颜色 ps怎么画一个圆形体
- 乐视1s手机参数配置 乐视1s参数详细参数
- 小黑盒看dota战绩 小黑盒怎么看dota2战绩
- 电脑苹果系统如何截图 苹果系统的电脑怎么截图
- 苹果5配置参数详解 苹果5配置参数表