为什么进行远程开发?
无论身处何处数秒内连接至远程环境
- 充分利用远程计算机的强大功能
在任何笔记本电脑上都可以轻松工作,无论其性能如何。借助远程计算机的计算资源,充分利用最大规模的数据集和代码库。 - 在远程服务器上保护敏感代码
如果将源代码存储在开发者的笔记本电脑上,那么这些设备被盗或存放不当都将是潜在的安全隐患。通过将代码专门存储在密闭、远程、由公司控制的计算机上可以消除这种风险。 - 保持环境一致性
使用预先确定的工具包、运行时要求、硬件规格等确切内容重现开发环境,这样您就不会再听到“在我的计算机上没有问题呀”这样的对话了! - 简化入门和技术面试
想要充分测试候选人的技能水平或让新人尽快入门?忘掉 30 项“项目启动”清单吧 – 现在,入门就像采用编排解决方案复制远程计算机一样简单。
远程开发实现方式
具我了解,远程开发大概有以下几种方式:
- ssh远程直接在命令行中开发
vim开发之类 - 远程桌面中直接开发
比如:windows远程桌面,向日葵,ToDesk, VNC - vscode远程开发
- 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版本和项目目录。
点击 Start IDE and Connect
就可以像本地一样开发项目了。非常的简单。
注册与激活
根据提示正常激活,即可。
当然还有一种方式,可以直接到我们的远程服务器上激活。
经过上面的操作,会自动把IDEA下载到如下目录:
~/.cache/JetBrains/RemoteDev/dist/2e929559b06e5_ideaIU-2023.1/bin
可以在远程VNC中手动激活,主要可以使用一些野路子。
具体的野路子激活过程,另启一篇了。
https://blog.csdn.net/lxyoucan/article/details/130282517
自定义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: 89541, exit value: 1
这个问题完美解决办法,我不知道。但是我换了个JDK 11的版本就发现问题成功解决了。
网上还有一种解决办法:
https://youtrack.jetbrains.com/issue/IDEA-304440/Cannot-run-program-java-failed-to-exec-spawn-helper-exit-value-1#focus=Comments-27-6736675.0-0
File | Settings | Build, Execution, Deployment | Compiler | * build process VM options text field
-Djdk.lang.Process.launchMechanism=vfork
亲测普通java项目是可以的。
maven的项目这样设置也是可以的,我一开始不行,后来把项目关了重新开又可以了。
参考
官方文档:
https://www.jetbrains.com/zh-cn/remote-development/