JetBrains Gateway IDEA远程开发

为什么进行远程开发?

无论身处何处数秒内连接至远程环境

充分利用远程计算机的强大功能

在任何笔记本电脑上都可以轻松工作,无论其性能如何。借助远程计算机的计算资源,充分利用最大规模的数据集和代码库。在远程服务器上保护敏感代码

如果将源代码存储在开发者的笔记本电脑上,那么这些设备被盗或存放不当都将是潜在的安全隐患。通过将代码专门存储在密闭、远程、由公司控制的计算机上可以消除这种风险。保持环境一致性

使用预先确定的工具包、运行时要求、硬件规格等确切内容重现开发环境,这样您就不会再听到“在我的计算机上没有问题呀”这样的对话了!简化入门和技术面试

想要充分测试候选人的技能水平或让新人尽快入门?忘掉 30 项“项目启动”清单吧 – 现在,入门就像采用编排解决方案复制远程计算机一样简单。

远程开发实现方式

具我了解,远程开发大概有以下几种方式:

ssh远程直接在命令行中开发

vim开发之类远程桌面中直接开发

比如:windows远程桌面,向日葵,ToDesk, VNCvscode远程开发idea远程开发

第1种在ssh中远程开发是本人用的最多的,为此我写过非常多的vim配置文章。这个优点就是比较成熟,设备兼容性好。甚至可能使用手机远程ssh进行开发。我甚至用这种方式在自家的电视上做过一段时间的开发。

第2种远程桌面中开发,我一般只是临时使用的。这种开发也不错,要说最大的缺点,也就是会有一定的延长性。画面质量也会有所下降。

上手

安装 JetBrains Gateway

安装比较简单,到这个页面下载你操作系统支持的版本就可以了。

https://www.jetbrains.com/zh-cn/remote-development/gateway/

我下载的是linux版本的。

连接ssh

首先你要有一个远程的ssh服务器,并且有用户名密码之类的。可能是购买的云服务器,也可以是某个可以远程的Linux服务器。推荐是linux,其他系统不清楚是否可以。我这里远程的是ubuntu 22.04的系统的。

New Connection

在这里插入图片描述

Connect to SSH

把你的远程服务ssh信息填进去就可以了。

在这里插入图片描述

Choose IDE and Project

选择在服务器上下载的IDE版本和项目目录。

在这里插入图片描述

点击 就可以像本地一样开发项目了。非常的简单。

注册与激活

在这里插入图片描述

根据提示正常激活,即可。

当然还有一种方式,可以直接到我们的远程服务器上激活。

经过上面的操作,会自动把IDEA下载到如下目录:

可以在远程VNC中手动激活,主要可以使用一些野路子。

具体的野路子激活过程,另启一篇了。

https://blog.csdn.net/lxyoucan/article/details/

自定义IDEA版本

默认只能下载最新版本的IDEA,这里有个选项可以自己上传。

在这里插入图片描述

但是经过我测试2021.1.3

运行项目报错

java: Cannot run program “/home/nl/.jdks/corretto-1.8.0_372/bin/java” (in directory “/home/nl/.cache/JetBrains/RemoteDev-IU/_home_nl_workspace_helloworld/compile-server”): error=0, Failed to exec spawn helper: pid: , exit value: 1

这个问题完美解决办法,我不知道。但是我换了个JDK 11的版本就发现问题成功解决了。

在这里插入图片描述

网上还有一种解决办法:

https://youtrack.jetbrains.com/issue/IDEA-/Cannot-run-program-java-failed-to-exec-spawn-helper-exit-value-1#focus=Comments-27-.0-0

File | Settings | Build, Execution, Deployment | Compiler | * build process VM options text field

在这里插入图片描述

亲测普通java项目是可以的。

maven的项目这样设置也是可以的,我一开始不行,后来把项目关了重新开又可以了。

真实使用体验

随着刚开始的新鲜感过去后,我发现了一些让我有些不舒服的BUG。

ideaVim插件

不稳定,我在使用yy pp这样的最常见的复制粘贴操作。经常会出现失控的问题。甚至会导致IDEA崩溃。

Database

这个功能 的bug比较多,比如Ctrl+Enter 查询快捷键时灵,时不灵。特别影响心情。只能用鼠标操作。而且没有绿色三角形按钮。

对于我来说几乎是一个不可用的状态。

算了数据库查询相关的,我就先本地查询吧,好在这部分的计算量不大,不影响电脑性能。

运行与调试

偶尔会出现点击运行或者调试按钮,点了以后没有任何反应。

复制粘贴

这个是我最终无法忍受的问题了。别的BUG我能克服,这个BUG让我直接自废武功啊。

这个BUG不是必然出现的,但是出现的频率很高。出现以后就无法复制了。只有把IDEA关了重新开。有些浪费时间。

JRebel点了无法反应

现象

在部分project中JRebel的图标点了没有反应。而大部分project中又可用。

解决办法

假如遇到点击没有反应,则重新安装一下这个JRebel的插件。你会发现此时这个图标虽然有,但是插件管理中显示这个插件没有安装。重新安装后,问题得到解决。

难道插件的配置信息与project也有关联。我感觉这个应该是BUG。

探索过程

很神奇,有同时开发了两个java项目,一个JRebel正常,一个点了没有任务反应。

我做了以下操作后,不正常的项目JRebel也正常了。

对比我发现无法使用JRebel的项目使用的是JDK11,我就把它统一换成了JDK8

并且做了以下操作:

File | Settings | Build, Execution, Deployment | Compiler | * build process VM options text field

重启项目后神奇的事情又发生了,我发现重启后,JRebel的图标竟然没有了。我在插件管理中发现这个插件变成没有安装的状态,我重新安装这个插件后。重启IDEA,JRebel变成可用状态。

我做了以上操作,成功解决了。我个人认为,应该是第2步解决了吧!

参考

官方文档:

https://www.jetbrains.com/zh-cn/remote-development/