2021-12-10
vscode 远程调试java
vscode是一款很好用的工具,可以基本替代大多数开发工具。但对不同的语言不同环境,并不是开箱即用。需要一定的配置。
本文主要是记录java远程开发配置。
vscode 配置
vscode 的用户配置分3个级别,分别是默认配置、全局配置和工作区配置,优先级也依次递增。对于团队项目,一些规范可以通过项目目录下建一个.vscode/setting.json
文件。
vscode安装相关插件
- 安装 microsoft的Extension Pack for Java
- Language Support for Java(TM) by Red Hat
- Debugger for Java
- Test Runner for Java
- Maven for Java
- Project Manager for Java
- Visual Studio IntelliCode
- 安装 microsoft remote相关插件
- Remote Development
- Remote - SSH: Editing Configuration Files
- Remote - SSH
- Remote - Containers
- Remote - WSL
编辑相关.ssh/config
Host mysvr
HostName 111.194.84.170
Port 2020
User zhh
IdentityFile ~/.ssh/id_rsa
点vscode状态栏左下角远程连接,可以选择相应的远程设备,如WSL,container和SSH方式。
然后就可以打开远程文件夹
新建文件夹如下
mkdir -p src/main/java/com/abloz
roottree.
├── README.en.md
├── README.md
└── src
└── main
└── java
└── com
└── abloz
└── main.java
用vscode打开 写一个简单的hello world,main.java
package com.abloz;
class Main {
public static void main(String[] args){
System.out.println("hello");
}
}
配置.vscode/launch.json
点左侧debug按钮,生成launch.json,选择java,launch java.
{
"type": "java",
"name": "Launch Main",
"request": "launch",
"mainClass": "com.abloz.Main",
"projectName": "xxx"
}
xxx为自动生成的project名称
运行和调试
可以通过vscode F5进行调试,添加断点。
问题
vscode 启动vscode server失败
The Language Support for Java (Syntax Server) server crashed and will restart
因为lombok的原因,在settings.json 找到 java.jdt.ls.vmargs,删除lombok的设置: 原始版本:
"java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -javaagent:\"/home/zhh/.vscode-server/extensions/gabrielbb.vscode-lombok-1.0.1/server/lombok.jar\"",
删除后
"java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m"
或重置为下面的设置
"java.jdt.ls.vmargs": "-noverify -Xmx1G -XX:+UseG1GC -XX:+UseStringDeduplication"
有可能需要删除插件,类似命令:
rm /home/zhh/.vscode-server/extensions/gabrielbb.vscode-lombok-1.0.1 -rf
如非注明转载, 均为原创. 本站遵循知识共享CC协议,转载请注明来源
FEATURED TAGS
css
vc6
http
automake
linux
make
makefile
voip
乱码
awk
flash
vista
vi
vim
javascript
pietty
putty
ssh
posix
subversion
svn
windows
删除
编译
多线程
wxwidgets
ie
ubuntu
开源
c
python
bash
备份
性能
scp
汉字
log
ruby
中文
bug
msn
nginx
php
shell
wordpress
mqueue
android
eclipse
java
mac
ios
html5
js
mysql
protobuf
apache
hadoop
install
iocp
twisted
centos
mapreduce
hbase
thrift
tutorial
hive
erlang
lucene
hdfs
sqoop
utf8
filter
草原
yarn
ganglia
恢复
scrapy
django
fsimage
flume
tail
flume-ng
mining
scala
go
kafka
gradle
cassandra
baas
spring
postgres
maven
mybatis
mongodb
https
nodejs
镜像
心理学
机器学习
Keras
theano
anaconda
docker
spark
akka-http
json
群论
区块链
加密
抽象代数
离散对数
同余
欧拉函数
扩展欧几里德算法
ES6
node-inspect
debug
win10
vscode
挖矿