先来一张最终效果图:

JetBrains Projector 是 JetBrains 的“远程开发”解决方案,基于 Client + Server 架构,对标的是微软 VSCode 的 Remote Development 方案。

与 VSCode 方案的区别:

  • VSCode 通过 SSH 之类的技术,只传输代码、索引等数据,仅将计算匀给服务器,而渲染显示等还是依赖本地的 VSCode 客户端
  • IDEA 系列全部 IDE 都是基于 Java 开发的,使用 Swing 进行界面的渲染。Projector 则是改动了 Swing 的渲染机制,通过网络传输渲染指令,最终使用 Web 技术将界面展现出来。除了客户端,Projector 也支持在浏览器中渲染使用。

要实现这一点,需要如下条件:

  • 服务端:官方提供了 3 中方式安装 Server 端

    1. Docker 镜像:需要额外安装 Docker 环境。不需要额外安装 IDEA,如果只是为了体验,推荐该方式。
    2. Python 脚本:通过 PyPi 安装,不过前提是先安装了 IDEA(本次体验使用了该方式)。
    3. IDE 插件:需要有图形界面的电脑支持并运行 Jetbrains IDE,通过安装 Projector 插件来作为服务端。
  • 客户端:有两种方式连接服务端
    1. 官方 Client:跨平台,应该是基于 Electron,没有多余的浏览器 UI 元素及可能的快捷键冲突,推荐此方案。
    2. 浏览器:通过浏览器直接方案服务端暴露的 url 直接访问(本次体验使用了该方式)。

此次体验,服务端采用 Python 脚本安装,客户端直接使用浏览器访问,服务器为 Ubuntu 系统,安装步骤如下:

  1. 安装 python3 及 pip3 基础环境:sudo apt install python3 python3-pip -y
  2. 确保安装底层依赖:sudo apt install libxext6 libxrender1 libxtst6 libfreetype6 libxi6 -y
  3. 安装 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
  4. 添加配置信息,指定 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 方式在应用商店安装后的默认位置)

参考资料:

  1. 官方文档:https://jetbrains.github.io/projector-client/mkdocs/latest/
  2. 知乎:https://www.zhihu.com/question/431322237
  3. 博客:https://xknow.net/jetbrains-projector-experience/

JetBrains Projector 体验的更多相关文章

  1. IDE搬进浏览器里——JetBrains Projector

    发展 提起 JetBrains,你会想到什么?各路强大的 IDE,比如 Android Studio.IDEA.WebStorm--这些对于开发者来说耳熟能详的产品都出自这家公司,这些 IDE 的功能 ...

  2. JetBrains又出神器啦!Fleet,体验飞一般的感觉

    目录 简介 从eclipse到Fleet Fleet的特性 JetBrains Space 总结 简介 java开发的同学可能对于JetBrains这家公司并不陌生,因为JetBrains号称拥有世界 ...

  3. JetBrains Fleet初体验,如何运行一个java项目

    序言 各位好啊,我是会编程的蜗牛,JetBrains 日前宣布其打造的下一代 IDE Fleet 正式推出公共预览版,现已开放下载.作为java开发者,对于JetBrains开发的全家桶可以说是印象深 ...

  4. JetBrains新产品Aqua——自动化测试开发工具(抢鲜体验)

    转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/9a093c88.html 你好,我是测试蔡坨坨. 随着行业内卷越来越严重,自动化测试已成为测试工程师的必备技能,谈及自动化测 ...

  5. Java 开发主流 IDE 环境体验

    前言 本来应该继续从 Oracle 官网搬砖的,但是随着示例代码越来越复杂,涉及的类库越来越多,使用 Vim 写 Java 代码就很力不从心了,是时候上 IDE 了.我最熟悉的 IDE 环境是 Ecl ...

  6. python--基础学习(一)开发环境搭建,体验HelloWorld

    python学习之前 最近想用python写爬虫,由于之前没接触过,所以从零开始,找了技术博文大概了解下基础. 印象比较深的是"python你不去认识它,可能没什么,一旦你认识了它,你就会爱 ...

  7. 从JetBrains公司产品给我的商业模式启示

    JetBrains是捷克一家公司,专门从事IDE工具的开发,运营的产品有十几个.我因为使用JavaScript IDE工具而了解了WebStorm.进而了解了开发WebStorm的公司JetBrian ...

  8. webstorm+nodejs+JetBrains IDE Support+chrome打造前端开发神器

    #webstorm+nodejs+JetBrains IDE Support+chrome打造前端开发神器 -- 工欲善其事 必先利其器 ##各工具介绍 `webstorm`是**JetBrains* ...

  9. .NET Core多平台开发体验[1]: Windows

    微软在千禧年推出 .NET战略,并在两年后推出第一个版本的.NET Framework和IDE(Visual Studio.NET 2002,后来改名为Visual Studio),如果你是一个资深的 ...

随机推荐

  1. GraphQL All In One

    GraphQL All In One refs https://github.com/hasura/learn-graphql xgqfrms 2012-2020 www.cnblogs.com 发布 ...

  2. Vue 3.x Composition API

    Vue 3.x Composition API setup 调用时机 创建组件实例,然后初始化 props ,紧接着就调用setup 函数; 从生命周期钩子的视角来看,它会在 beforeCreate ...

  3. website & blogs & about me & contact

    website & blogs & about me & contact demos https://davidwalsh.name/about-david-walsh htt ...

  4. c++ 遍历当前程序的线程

    #include <iostream> #include <Windows.h> #include <Psapi.h> #include <TlHelp32. ...

  5. js 创建XML

    // 创建xml数据 let doc = document.implementation.createDocument('', 'root', null); // 创建一个文档 let root =d ...

  6. CentOS 7.6.1810 运行pupperteer

    故障排除 安装puppeteer,使用cnpm 解决依赖 $ yum -y update $ yum install -y pango libXcomposite libXcursor libXdam ...

  7. Kyle Tedford :人,一定要懂得转弯

    每个人都渴望成功,但成功之路不仅仅只有一条. 有的时候,有一条路人满为患,每个人都挤破脑袋想要过去,然而能过去者,却寥寥无几.但有的人,却知道适时转弯,在新的道路上,摸索前进,最终通往成功. 最近,星 ...

  8. Azure Functions(二)集成 Azure Blob Storage 存储文件

    一,引言 上一篇文章有介绍到什么是 SeverLess ,ServerLess 都有哪些特点,以及多云环境下 ServerLess 都有哪些解决方案.在这众多解决方案中就包括 Function App ...

  9. 记一个关于std::unordered_map并发访问的BUG

    前言 刷题刷得头疼,水篇blog.这个BUG是我大约一个月前,在做15445实现lock_manager的时候遇到的一个很恶劣但很愚蠢的BUG,排查 + 摸鱼大概花了我三天的时间,根本原因是我在使用s ...

  10. PythonPEP8 风格规范指南

    PEP是Python Enhancement Proposal的缩写,通常翻译为"Python增强提案".每个PEP都是一份为Python社区提供的指导Python往更好的方向发展 ...