為什么進(jìn)行遠(yuǎn)程開(kāi)發(fā)?
無(wú)論身處何處數(shù)秒內(nèi)連接至遠(yuǎn)程環(huán)境
- 充分利用遠(yuǎn)程計(jì)算機(jī)的強(qiáng)大功能
在任何筆記本電腦上都可以輕松工作,無(wú)論其性能如何。借助遠(yuǎn)程計(jì)算機(jī)的計(jì)算資源,充分利用最大規(guī)模的數(shù)據(jù)集和代碼庫(kù)。 - 在遠(yuǎn)程服務(wù)器上保護(hù)敏感代碼
如果將源代碼存儲(chǔ)在開(kāi)發(fā)者的筆記本電腦上,那么這些設(shè)備被盜或存放不當(dāng)都將是潛在的安全隱患。通過(guò)將代碼專(zhuān)門(mén)存儲(chǔ)在密閉、遠(yuǎn)程、由公司控制的計(jì)算機(jī)上可以消除這種風(fēng)險(xiǎn)。 - 保持環(huán)境一致性
使用預(yù)先確定的工具包、運(yùn)行時(shí)要求、硬件規(guī)格等確切內(nèi)容重現(xiàn)開(kāi)發(fā)環(huán)境,這樣您就不會(huì)再聽(tīng)到“在我的計(jì)算機(jī)上沒(méi)有問(wèn)題呀”這樣的對(duì)話(huà)了! - 簡(jiǎn)化入門(mén)和技術(shù)面試
想要充分測(cè)試候選人的技能水平或讓新人盡快入門(mén)?忘掉 30 項(xiàng)“項(xiàng)目啟動(dòng)”清單吧 – 現(xiàn)在,入門(mén)就像采用編排解決方案復(fù)制遠(yuǎn)程計(jì)算機(jī)一樣簡(jiǎn)單。
遠(yuǎn)程開(kāi)發(fā)實(shí)現(xiàn)方式
具我了解,遠(yuǎn)程開(kāi)發(fā)大概有以下幾種方式:
- ssh遠(yuǎn)程直接在命令行中開(kāi)發(fā)
vim開(kāi)發(fā)之類(lèi) - 遠(yuǎn)程桌面中直接開(kāi)發(fā)
比如:windows遠(yuǎn)程桌面,向日葵,ToDesk, VNC - vscode遠(yuǎn)程開(kāi)發(fā)
- idea遠(yuǎn)程開(kāi)發(fā)
第1種在ssh中遠(yuǎn)程開(kāi)發(fā)是本人用的最多的,為此我寫(xiě)過(guò)非常多的vim配置文章。這個(gè)優(yōu)點(diǎn)就是比較成熟,設(shè)備兼容性好。甚至可能使用手機(jī)遠(yuǎn)程ssh進(jìn)行開(kāi)發(fā)。我甚至用這種方式在自家的電視上做過(guò)一段時(shí)間的開(kāi)發(fā)。
第2種遠(yuǎn)程桌面中開(kāi)發(fā),我一般只是臨時(shí)使用的。這種開(kāi)發(fā)也不錯(cuò),要說(shuō)最大的缺點(diǎn),也就是會(huì)有一定的延長(zhǎng)性。畫(huà)面質(zhì)量也會(huì)有所下降。
上手
安裝 JetBrains Gateway
安裝比較簡(jiǎn)單,到這個(gè)頁(yè)面下載你操作系統(tǒng)支持的版本就可以了。
https://www.jetbrains.com/zh-cn/remote-development/gateway/
我下載的是linux版本的。
連接ssh
首先你要有一個(gè)遠(yuǎn)程的ssh服務(wù)器,并且有用戶(hù)名密碼之類(lèi)的??赡苁琴?gòu)買(mǎi)的云服務(wù)器,也可以是某個(gè)可以遠(yuǎn)程的Linux服務(wù)器。推薦是linux,其他系統(tǒng)不清楚是否可以。我這里遠(yuǎn)程的是ubuntu 22.04的系統(tǒng)的。
New Connection
Connect to SSH
把你的遠(yuǎn)程服務(wù)ssh信息填進(jìn)去就可以了。
Choose IDE and Project
選擇在服務(wù)器上下載的IDE版本和項(xiàng)目目錄。
點(diǎn)擊 Start IDE and Connect
就可以像本地一樣開(kāi)發(fā)項(xiàng)目了。非常的簡(jiǎn)單。
注冊(cè)與激活
根據(jù)提示正常激活,即可。
當(dāng)然還有一種方式,可以直接到我們的遠(yuǎn)程服務(wù)器上激活。
經(jīng)過(guò)上面的操作,會(huì)自動(dòng)把IDEA下載到如下目錄:
~/.cache/JetBrains/RemoteDev/dist/2e929559b06e5_ideaIU-2023.1/bin
可以在遠(yuǎn)程VNC中手動(dòng)激活,主要可以使用一些野路子。
具體的野路子激活過(guò)程,另啟一篇了。
https://blog.csdn.net/lxyoucan/article/details/130282517
自定義IDEA版本
默認(rèn)只能下載最新版本的IDEA,這里有個(gè)選項(xiàng)可以自己上傳。
但是經(jīng)過(guò)我測(cè)試2021.1.3
運(yùn)行項(xiàng)目報(bào)錯(cuò)
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
這個(gè)問(wèn)題完美解決辦法,我不知道。但是我換了個(gè)JDK 11的版本就發(fā)現(xiàn)問(wèn)題成功解決了。
網(wǎng)上還有一種解決辦法:
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
親測(cè)普通java項(xiàng)目是可以的。
maven的項(xiàng)目這樣設(shè)置也是可以的,我一開(kāi)始不行,后來(lái)把項(xiàng)目關(guān)了重新開(kāi)又可以了。
真實(shí)使用體驗(yàn)
隨著剛開(kāi)始的新鮮感過(guò)去后,我發(fā)現(xiàn)了一些讓我有些不舒服的BUG。
ideaVim插件
不穩(wěn)定,我在使用yy pp這樣的最常見(jiàn)的復(fù)制粘貼操作。經(jīng)常會(huì)出現(xiàn)失控的問(wèn)題。甚至?xí)?dǎo)致IDEA崩潰。
Database
這個(gè)功能 的bug比較多,比如Ctrl+Enter 查詢(xún)快捷鍵時(shí)靈,時(shí)不靈。特別影響心情。只能用鼠標(biāo)操作。而且沒(méi)有綠色三角形按鈕。
對(duì)于我來(lái)說(shuō)幾乎是一個(gè)不可用的狀態(tài)。
算了數(shù)據(jù)庫(kù)查詢(xún)相關(guān)的,我就先本地查詢(xún)吧,好在這部分的計(jì)算量不大,不影響電腦性能。
運(yùn)行與調(diào)試
偶爾會(huì)出現(xiàn)點(diǎn)擊運(yùn)行或者調(diào)試按鈕,點(diǎn)了以后沒(méi)有任何反應(yīng)。
復(fù)制粘貼
這個(gè)是我最終無(wú)法忍受的問(wèn)題了。別的BUG我能克服,這個(gè)BUG讓我直接自廢武功啊。
這個(gè)BUG不是必然出現(xiàn)的,但是出現(xiàn)的頻率很高。出現(xiàn)以后就無(wú)法復(fù)制了。只有把IDEA關(guān)了重新開(kāi)。有些浪費(fèi)時(shí)間。
JRebel點(diǎn)了無(wú)法反應(yīng)
現(xiàn)象
在部分project中JRebel的圖標(biāo)點(diǎn)了沒(méi)有反應(yīng)。而大部分project中又可用。
解決辦法
假如遇到點(diǎn)擊沒(méi)有反應(yīng),則重新安裝一下這個(gè)JRebel的插件。你會(huì)發(fā)現(xiàn)此時(shí)這個(gè)圖標(biāo)雖然有,但是插件管理中顯示這個(gè)插件沒(méi)有安裝。重新安裝后,問(wèn)題得到解決。
難道插件的配置信息與project也有關(guān)聯(lián)。我感覺(jué)這個(gè)應(yīng)該是BUG。
探索過(guò)程
很神奇,有同時(shí)開(kāi)發(fā)了兩個(gè)java項(xiàng)目,一個(gè)JRebel正常,一個(gè)點(diǎn)了沒(méi)有任務(wù)反應(yīng)。
我做了以下操作后,不正常的項(xiàng)目JRebel也正常了。
- 對(duì)比我發(fā)現(xiàn)無(wú)法使用JRebel的項(xiàng)目使用的是JDK11,我就把它統(tǒng)一換成了JDK8
并且做了以下操作:
File | Settings | Build, Execution, Deployment | Compiler | * build process VM options text field
-Djdk.lang.Process.launchMechanism=vfork
- 重啟項(xiàng)目后神奇的事情又發(fā)生了,我發(fā)現(xiàn)重啟后,JRebel的圖標(biāo)竟然沒(méi)有了。我在插件管理中發(fā)現(xiàn)這個(gè)插件變成沒(méi)有安裝的狀態(tài),我重新安裝這個(gè)插件后。重啟IDEA,JRebel變成可用狀態(tài)。
我做了以上操作,成功解決了。我個(gè)人認(rèn)為,應(yīng)該是第2步解決了吧!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-476815.html
參考
官方文檔:
https://www.jetbrains.com/zh-cn/remote-development/文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-476815.html
到了這里,關(guān)于JetBrains Gateway IDEA遠(yuǎn)程開(kāi)發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!