VSCode远程开发与调试java程序
VScode 是目前非常流行的编辑器之一,是一种基于 Electron 开发的桌面版应用。作为一种桌面软件限制了在服务器端的应用。而目前比较流行的服务器端的编辑器主要是 vim 和 emacs 。想利用 VScode 远程调试程序,需要在服务端(Linux GLIBC2.17+)安装 VScode code-server 和相应插件,本地开发客户端(Windows)安装 VScode和相应插件。
1. 服务端(Linux GLIBC2.17+)安装code-server 和相应插件
如果开发服务器本身可以上网,则不需要特别安装。按照操作提示一步步安装就可以。否则要手动安装一些插件。本文假定开发服务器可以连接外网。
开发服务端一定配置好 java 和 maven 的开发环境。主要就是几个环境变量(参考Linux上安装Java开发环境),我的配置如下:
2. 开发客户端(Windows)安装 VScode和相应插件
参考下面的文章,本地安装好VSCode java开发环境:
VSCode编译调试本地Java代码
- Windows上安装 openssh client
过程很简单,我是在 Windows 7 客户端上实践的。首先是安装 git-scm,参考:
VSCode结合git客户端的使用方法
核心就是要在系统环境变量 Path 中加入 %GITSCM_HOME%\usr\bin,这样在 cmd 里输入 ssh,scp 这些命令无碍。生成 Windows用户的本地公钥私钥对(C:\Users\用户.ssh\):
- 测试本地客户端免密登录开发服务器
确保通过 cmd > ssh remoteuser@remoteip 可以登录远程机器:
将本机的 C:\Users\用户\.ssh\id_rsa.pub 加入到远程机器信任(ssh 免密登录)。我是用 cygwin 实现把Windows用户的公钥加入到远程服务器(code)上。如下:
然后打开 cmd 命令行测试登录远程机器即可(不再需要输入密码):
- VScode 安装和使用 Remote Development
Remote Development插件提供了通过ssh的方法连接到远程机器上,另外插件还提供了连接到WSL和容器的功能。
VScode 快捷键:Ctrl+Shift+X,查找 Remote Development 并安装 Visual Studio Code Remote Development Extension Pack
VScode 快捷键:Ctrl+Shift+P,输入:Remote-SSH: Settings
3. 开发客户端(Windows7)连接到远程开发Linux服务器(以Ubuntu1804为例)
Win7 打开 cmd,随便进入一个本地空目录,按命令打开 VSCode:
这样就打开一个空的工程。依次点击左侧的 1 Remote Explorer > 2 Add New
然后3 输入ssh登录的信息回车:
最后选 4,保存配置到 .ssh\config 文件里 (这个文件可以删除,然后重复1-4的过程):
最后看到的样子如下。这个配置是全局的,只要 .ssh 目录下的config 存在,就会出现相应的配置(按Remote Explorer后)。当然也可以直接更改这个配置文件(yaml样式),加入更多的远程机器。然后按 5 Connect to Host …从新窗口打开远程机器。
config 的一个例子(2个服务器)
Host ubuntu_pc
HostName 192.168.94.107
User clHost rhel6_server
HostName 192.168.39.111
User root
连接到远程服务器成功后,如下图。按6打开你的远程工程目录。
最后看看远程工程打开的样子:
右下角的红圈:
Allow是个安全提示,可能是我没有用root登录。
Reload 是个插件。更改配置之后重新load窗口。
其实这时候调试还不行,还要安装 Debugger For Java,我这个已经装好了:
最后还要建2个配置.vscode的文件,如下图:
## 开始java远程debug
打开源代码,双击设置断点。按F5启动调试。一切顺利。