IDEA远程开发

IDEA远程开发

前期准备

IDEA的远程开发是在本地去操昨远程服务器上的代码,所以我们先需要准备一台服务器,在此我使用vmware虚拟出ubuntu-20.04.6的Server版本,以便后面演示。

Ubuntu的Java环境配置

  1. JDK8
sudo apt install openjdk-8-jdk
  1. maven
sudo apt install maven

服务器Java环境准备好了,就开始IDEA的远程开发了。

远程部署

第一种远程开发的方式是通过网络将程序部署到远程服务器上,编码工作还是在本地进行,只不过我们是在本地编写代码,然后我们将本地的代码文件定期的同步到服务器上去,再使用本地的IDEA远程操作服务器上的代码完成部署和运行。远程开发主要分为 6六个阶段:编码、文件同步、运行、编译构建、部署、调试。接下来我们创建一个简单的springboot项目,来演示上述操作。

1. 编码

我们的创建的springboot项目仅提供一个接口,用于测试服务是否正常访问,代码如下:

@RestController("/")
public class HelloController {@GetMapping("/hello")public String getHello(){return "Hello World";}
}

2. 文件同步

  • 点击idea的Tools==>Development==>Configuration.

image-20230824202616635

  1. 点击+选择SFTP
    在这里插入图片描述
  • 为该服务起个名称
    在这里插入图片描述

  • 填写服务器的基本信息如:ip,用户名以及密码

在这里插入图片描述

  • 将本地的项目文件路径和远程服务器上的某一路径进行映射
    在这里插入图片描述

  • 将本地的代码同步到远程服务器

在这里插入图片描述

在这里插入图片描述

  • 验证本地代码是否同步完毕

在这里插入图片描述

到此,你在本地编写的代码都会自动同步到服务器上了。

3. 运行项目

在idea中创建出一个可以连接远程服务器的终端

在这里插入图片描述

使用cd命令进入项目代码

在这里插入图片描述

输入mvn spring-boot:run运行项目

mvn spring-boot:run

然后,能够看到项目运行成功

在这里插入图片描述

使用浏览器进行访问该接口

在这里插入图片描述

浏览器显示了Hello Wolrd则表示我们已经正常的访问到服务器上运行的项目了

4. 构建项目

使用maven将项目进行打包

mvn package

看到一下输出,表示打包成功

在这里插入图片描述

5. 部署

在服务器上已经将项目打成了jar包,我们使用以下=命令运行jar包

 java -jar  /home/hmy/demo/target/demo1-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

看到控制台以下输出则表示正常运行

在这里插入图片描述

6. 远程调试

此时我们的项目已经在服务器上运行,接下来我们使用idea远程调试服务器上的代码

  • 在idea中点击编辑配置

在这里插入图片描述

  • 新建一个远程JVM调试

    在这里插入图片描述

  • 更改配置,修改成自己的服务器器ip,以及调试占用的端口号,JDK版本等,idea会自动生成一段调试参数,在调试的时候必须加上。

在这里插入图片描述

调试命令如下

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar  /home/hmy/demo/target/demo1-0.0.1-SNAPSHOT.jar  --spring.profiles.active=prod

使用上述的命令启动项目后,在idea中点击Bebug

在这里插入图片描述

打上断点进行调试

在这里插入图片描述

在访问该接口,可以看到调试已经生效

在这里插入图片描述

到此idea对服务上的项目进行远程开发,但是idea为我们提供一种更加简单的远程开发方法,接下来就介绍另一种方法

远程开发

使用idea自带的远程开发功能,可以直接将本地代码的编译,构建,调试,运行等工作都放在远程服务器上只能执行,而本地运行一个客户端远程去操作服务器上的代码,就如同我们平常写代码一样。

1. 首先切换到idea的主页

在这里插入图片描述

2. 配置ssh连接

在这里插入图片描述

3. 指定远程开发的代码路径

在这里插入图片描述

然后就会下载一个客户端,第一次下载可能有点慢,由于我之前安装过,所以就直接进入了该客户端。

启动项目后报错,这是idea的一个bug

在这里插入图片描述

解决办法如下

打开设置==》Complier==>在vm potionas中添加以下一行参数,项目就可以正常运行

-Djdk.lang.Process.launchMechanism=vfork

image-20230825001001679

4. 直接Debug模式启动项目

image-20230825001917417

使用浏览器访问该接口

image-20230825002407365

到此为止,idea远程开发就结束了,推荐使用第二种,非常简单的使用。


各位看官如果觉得文章写得不错,点赞评论关注走一波!谢谢啦!。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/52093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三星申请新商标:未来将应用于智能戒指,作为XR头显延伸设备

三星最近向英国知识产权局提交了名为“Samsung Curio”的新商标,这预示着三星正积极扩展可穿戴设备生态。该商标被分类为“Class 9”,这表明它有可能被用于未来的智能戒指。 据报道,三星计划将智能戒指作为XR头显设备的延伸,与苹果…

面试题-React(六):React组件和生命周期

一、React组件 React组件简介: React组件是构建用户界面的基本单元。它们将界面拆分成独立、可重用的部分,使得代码更加模块化、可维护性更高。React组件可以是函数组件或类组件,它们接收输入的数据(称为props)并返回…

基于PaddlePaddle实现的声纹识别系统

前言 本项目使用了EcapaTdnn、ResNetSE、ERes2Net、CAM等多种先进的声纹识别模型,不排除以后会支持更多模型,同时本项目也支持了MelSpectrogram、Spectrogram、MFCC、Fbank等多种数据预处理方法,使用了ArcFace Loss,ArcFace loss…

ETLCloud轻量级数据中台解决方案

引言 随着信息时代的到来,数据已经成为企业的重要资源,如何高效地管理、分析和应用数据变得尤为关键。然而,许多企业在构建数据中台时面临着高昂的成本、复杂的架构和漫长的实施周期等问题。为了解决这些挑战,我们推出了ETLCloud…

java八股文面试[java基础]——CGLIB动态代理与JDK动态代理

CGLIB CGLIB简介: 什么是CGLIB CGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端&#xff…

利用LLM模型微调的短课程;钉钉宣布开放智能化底座能力

🦉 AI新闻 🚀 钉钉宣布开放智能化底座能力AI PaaS,推动企业数智化转型发展 摘要:钉钉在生态大会上宣布开放智能化底座能力AI PaaS,与生态伙伴探寻企业服务的新发展道路。AI PaaS结合5G、云计算和人工智能技术的普及和…

文心一言 VS 讯飞星火 VS chatgpt (81)-- 算法导论7.4 6题

六、如果用go语言&#xff0c;考虑对 PARTITION 过程做这样的修改:从数组 A 中随机选出三个元素&#xff0c;并用这三个元素的中位数(即这三个元素按大小排在中间的值)对数组进行划分。求以a 的函数形式表示的、最坏划分比例为 a:(1-a)的近似概率&#xff0c;其中 0<a<1。…

卡尔曼滤波学习笔记

Kalman Filter Ⅰ、直观理解1、描述2、例子 Ⅱ、适用范围1、线性系统2、噪声服从高斯分布 Ⅲ、相关公式1、原始公式2、预测公式3、更新公式4、初值赋予5、总结 Ⅳ、应用例子Ⅴ、代码实现Ⅵ、公式理解1、协方差矩阵的理解1.1 协方差1.2 协方差矩阵1.3、相关数学公式 2、状态方程…

Android12之ABuffer数据处理(三十四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

Ubuntu20.04安装软件报错:The following packages have unmet dependencies

Ubuntu20.04更换阿里云源后安装软件都会报错&#xff1a;The following packages have unmet dependencies 查看资料&#xff0c;大概是ubuntu本身的源比较版本较老&#xff0c;而阿里云的源比较新&#xff0c;因此版本不匹配造成依赖的库不匹配&#xff0c;所以只要将阿里云的…

【网络】HTTPS的加密

目录 第一组&#xff0c;非对称加密第二组&#xff0c;非对称加密第三组&#xff0c;对称加密证书签名 HTTPS使用的是非对称加密加对称加密的方案 &#xff08;非对称加密&#xff1a;公钥加/解密&#xff0c;私钥解/加密&#xff09; &#xff08;对称加密&#xff1a;一组对称…

什么是响应式设计(Responsive Design)?如何实现一个响应式网页?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 响应式设计&#xff08;Responsive Design&#xff09;⭐ 如何实现一个响应式网页&#xff1f;1. 弹性网格布局2. 媒体查询3. 弹性图像和媒体4. 流式布局5. 优化导航6. 测试和调整7. 图片优化8. 字体优化9. 渐进增强10. 面向移动优先11. …

go、java、.net、C#、nodejs、vue、react、python程序问题进群咨询

1、面试辅导 2、程序辅导 3、一对一腾讯会议辅导 3、业务逻辑辅导 4、各种bug帮你解决。 5、培训小白 6、顺利拿到offer

【优选算法】—— 字符串匹配算法

在本期的字符串匹配算法中&#xff0c;我将给大家带来常见的两种经典的示例&#xff1a; 1、暴力匹配&#xff08;BF&#xff09;算法 2、KMP算法 目录 &#xff08;一&#xff09;暴力匹配&#xff08;BF&#xff09;算法 1、思想 2、演示 3、代码展示 &#xff08;二&…

基于Roop视频换脸

Roop 是一个强大的一键换脸工具&#xff0c;允许用户在视频中替换面部&#xff0c;只需要目标面部的一张图片&#xff0c;无需数据集&#xff0c;无需训练。 相对于之前的 Simswap 来说效果要好很多&#xff0c;不过需要注意的是没有授权不要商用。 文章目录 环境搭建使用方法…

Java之AbstractQueuedSynchronizer

要让你写一个java版的并发同步库&#xff0c;你会怎么思考设计&#xff1f;&#xff1f;&#xff1f;先思考三五分钟 请先拜读下老外的paperhttp://gee.cs.oswego.edu/dl/papers/aqs.pdf 1. 简介 AbstractQueuedSynchronizer&#xff0c;简称AQS&#xff0c;中文翻译为抽象队…

Git 原理与使用

1.版本控制器 所谓的版本控制器&#xff0c;就是能让你了解到⼀个⽂件的历史&#xff0c;以及它的发展过程的系统。通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统&#xff0c;同时也⽅便多⼈协同作业。 ⽬前最主流的版本控制器就是 Git 。Git 可以控制电脑…

vue 简单实验 v-bind 变量与html属性绑定

1.代码 <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"bind-attribute"><span v-bind:title"message">鼠标悬停几秒钟查看此处动态绑定的提示信息&#xff01;</sp…

【附安装包】CIMCO Edit 8安装教程|数控编程必备

软件下载 软件&#xff1a;CIMCO Edit版本&#xff1a;8语言&#xff1a;简体中文大小&#xff1a;249.18M安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pan.baid…

学习JAVA打卡第四十一天

字符串与字符数组、字节数组 ⑴字符串与字符数组 String类的构造方法String&#xff08;char a[]&#xff09;和String&#xff08;char a[]&#xff09;,int offset,int length,分别用数组a中的全部字符和部分字符创建string对象。 String类也提供将string对象的字符序列存…