idea怎么配置jdk环境(idea配置jdk环境变量)
idea远程部署调试java应用程序
[toc]
基本概述
在工作中,我们可能会遇到本地无法连接开发环境数据库等资源,但又想在本地直接开发、调试。
这时候就能通过idea
的run 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
创建一个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:从如上步骤,可以看到已经成功在本地执行了,接下来就是要让他远程部署到服务器上,并且可以调试。
应用配置
修改应用配置
右键点击
类旁边的启动符,弹出选项框,点击
springbootremotedeploydemoapplicationmodify 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
按钮配置完成
验证结果
本地验证
点击
的启动按钮,在启动日志中可以看到已经部署到服务器上,同时也能看到本地端口
springbootremotedeploydemoapplication63006
映射到了服务器的8080
端口。
$ curl http://localhost:63006/hello/world
hello world%
在本地访问映射到服务器的端口63006
,也能正常访问。
ps:可以启动,当然也可以进行调试。
服务器验证
在远程服务器上,可以看到
已经被部署在
springboot-remote-deploy-demo/root
路径下了,且访问
会正确返回
http://127.0.0.1:8080/hello/worldhello 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 ~]#