先來一張最終效果圖:
JetBrains Projector 是 JetBrains 的“遠程開發”解決方案,基於 Client + Server 架構,對標的是微軟 VSCode 的 Remote Development 方案。
與 VSCode 方案的區別:
- VSCode 通過 SSH 之類的技術,只傳輸代碼、索引等數據,僅將計算勻給服務器,而渲染顯示等還是依賴本地的 VSCode 客戶端
- IDEA 系列全部 IDE 都是基於 Java 開發的,使用 Swing 進行界面的渲染。Projector 則是改動了 Swing 的渲染機制,通過網絡傳輸渲染指令,最終使用 Web 技術將界面展現出來。除了客戶端,Projector 也支持在瀏覽器中渲染使用。
要實現這一點,需要如下條件:
- 服務端:官方提供了 3 中方式安裝 Server 端
- 客戶端:有兩種方式連接服務端
- 官方 Client:跨平台,應該是基於 Electron,沒有多余的瀏覽器 UI 元素及可能的快捷鍵沖突,推薦此方案。
- 瀏覽器:通過瀏覽器直接方案服務端暴露的 url 直接訪問(本次體驗使用了該方式)。
此次體驗,服務端采用 Python 腳本安裝,客戶端直接使用瀏覽器訪問,服務器為 Ubuntu 系統,安裝步驟如下:
- 安裝 python3 及 pip3 基礎環境:sudo apt install python3 python3-pip -y
- 確保安裝底層依賴:sudo apt install libxext6 libxrender1 libxtst6 libfreetype6 libxi6 -y
- 安裝 projector-installer:pip3 install projector-installer --user
- 如果提示 “ERROR: pyopenssl 20.0.1 has requirement cryptography>=3.2, but you'll have cryptography 2.8 which is incompatible.” 需要在安裝命令后加上更新 cryptography 的指令:pip3 install projector-installer --user --upgrade cryptography
- 添加配置信息,指定 IDEA 路徑后,運行 projector:projector run
- 安裝后如果直接運行命令 projector run,會提示找不到 projector 命令,需要在 ~/.profile 中添加環境變量信息
- 運行前需要添加配置信息:projector config add steve-BSRE-1605,其中 “steve-BSRE-1605” 是我的配置信息名稱,需要替換為自己的信息,在配置過程中需要輸入 IDE 的路徑,如:/snap/intellij-idea-ultimate/current/ (在 Ubuntu 中通過 snap 方式在應用商店安裝后的默認位置)
參考資料: