VSCode遠程開發與調試java程序

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開發環境),我的配置如下:

export MAVEN_HOME=/usr/local/apache/apache-maven-3.3.3
export JAVA_HOME=/usr/local/apache/java/jdk1.8.0_152
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin

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
C:\> ssh-keygen
  • 測試本地客戶端免密登錄開發服務器

確保通過 cmd > ssh remoteuser@remoteip 可以登錄遠程機器:

將本機的 C:\Users\用戶\.ssh\id_rsa.pub 加入到遠程機器信任(ssh 免密登錄)。我是用 cygwin 實現把Windows用戶的公鑰加入到遠程服務器(code)上。如下:

cygwin 命令行中:
	$ cd /cygdrive/c/Users/zhang/.ssh
	$ ssh-copy-id -i id_rsa.pub root@code

然後打開 cmd 命令行測試登錄遠程機器即可(不再需要輸入密碼):

 cmd 命令行:
	 C:\> ssh root@code
  • 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:

C:\Users\zhang\Workspace\debugjava > code .

這樣就打開一個空的工程。依次點擊左側的 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 cl

Host rhel6_server
HostName 192.168.39.111
User root

在這裏插入圖片描述連接到遠程服務器成功後,如下圖。按6打開你的遠程工程目錄。

在這裏插入圖片描述最後看看遠程工程打開的樣子:

在這裏插入圖片描述右下角的紅圈:

Allow是個安全提示,可能是我沒有用root登錄。
Reload 是個插件。更改配置之後重新load窗口。

其實這時候調試還不行,還要安裝 Debugger For Java,我這個已經裝好了:
在這裏插入圖片描述最後還要建2個配置.vscode的文件,如下圖:
在這裏插入圖片描述## 開始java遠程debug

打開源代碼,雙擊設置斷點。按F5啓動調試。一切順利。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章