JetBrains Projector Projector是一款遠(yuǎn)程訪問IDE工具,支持在服務(wù)器上運(yùn)行基于IntelliJ的IDE和基于Swing的應(yīng)用,讓開發(fā)者可以在任何地方使用瀏覽器和本地應(yīng)用來訪問它們。
基本簡(jiǎn)介
Swing是Java的圖形widget工具包。當(dāng)前的JetBrains IDE都使用了Swing來繪制UI,其他基于IntelliJ的IDE(例如 Android Studio)同樣如此。盡管JetBrains IDE和Swing應(yīng)用都是桌面應(yīng)用,但存在一些邊界情況需要使用特殊方法,比如瘦客戶端(Thin clients),這就是Projector的使用場(chǎng)景。
適用場(chǎng)景
在runtime或數(shù)據(jù)庫(kù)附近運(yùn)行代碼以降低往返通信頻率
高安全性企業(yè)環(huán)境
真正的大型項(xiàng)目
禁止在本地復(fù)制源代碼
用戶硬件被限制使用
需要在Windows設(shè)備甚至是非傳統(tǒng)的操作系統(tǒng)(例如ChromeOS)上的 GNU/Linux 環(huán)境中運(yùn)行IDE
當(dāng)應(yīng)用程序繼續(xù)在服務(wù)器上運(yùn)行時(shí),需要關(guān)閉計(jì)算機(jī)
遠(yuǎn)程調(diào)試服務(wù)端(devtest,devprod)
具有調(diào)試源和預(yù)配置IDE的VM或Docker鏡像
需要遠(yuǎn)程訪問的配置
目前有兩種方式使用Projector,分別是Web客戶端和原生應(yīng)用。
Web客戶端使用HTML5 Canvas API實(shí)現(xiàn)(原理是將JVM的Swing繪制層替換掉,改成向?yàn)g覽器發(fā)送渲染指令),使用者只需在瀏覽器輸入U(xiǎn)RL即可完成訪問。當(dāng)然,前提是配置好Projector要訪問的主機(jī)。
原生應(yīng)用支持macOS、Windows 和 Linux平臺(tái),除了可集成到Dock或任務(wù)欄這些好處外,原生應(yīng)用還支持Ctrl+W/Cmd+W等鍵盤快捷鍵,這些快捷鍵在Web客戶端中通常無法使用。