在 VSCode 里写Java 项目(持续更新)

前言

        IDEA 固然强大、使用方便、插件强大、界面美观。但是缺点也是明显的,占内存很大,启动慢,在单个项目开发的时候可能能运行流畅,但是同时打开多个IDEA,内存过小的电脑可能扛不住,我打开同一个项目不运行,VSCode只占用了350M,而IDEA占用了1200M,但是运行程序后,VSCode占用了2700M,而IDEA占用了3900M。IDEA占用内存大并不是说他不好,他带来的是速度上的提升,编码的方便,本文是给那些有兴趣用VSCode写Java,喜欢折腾,喜欢自定义自己的插件,或者配置有限的程序员们,一点小小的建议,但是如果条件允许,尽量还是用IDEA开发Java项目把,VSCode现在(2021.10)还不够强大,插件功能还是少了点。 

        后续会整理一下还不错的插件到另一篇文章中去。

目录

前言

一、插件及使用设置

1、编程环境插件

中文插件

 java需要的插件包

SpringBoot相关插件

​编辑

Maven插件

2、字体颜色、界面颜色、快捷键模仿IDEA

界面颜色

字体颜色

快捷键

3、阿里巴巴编码规约插件

4、LeetCode插件

5、插入类注释、方法注释

6、常规设置

1.进入设置界面

 2. 进入settings.json界面。

 3. 自动保存​编辑

7、输出信息输出到调试控制台,而非终端

二、遇到的问题

1、Java文件名改名,类名跟着修改了,但是依旧报错

2、Junit单元测试,pom文件添加了依赖,但是@Test没用

3、Organize import之后,别的包的类报错。

4、Debug模式,到断点的时候界面会卡住。

5、POM文件报错,在idea里面又不报错。

6、 this.extensionApi.serverReady is not a function

 7、编写代码的时候CPU占比特别高。

三、不好用的地方

1、暂时没找到插件来解决依赖搜索

2、复制的代码里面要是用到了别的类,引用不会一起复制过来

3、报错提示不明显

4、给maven依赖包中的class文件打断点无法生效

四、使用指南

1、@Override

2、热部署

3、搜索请求地址的url对应的方法


一、插件及使用设置

1、编程环境插件

中文插件

在 VSCode 里写Java 项目(持续更新)_第1张图片

 java需要的插件包

里面包含6个常用的java插件 

在 VSCode 里写Java 项目(持续更新)_第2张图片

 PS. 要是系统里面只有java1.8版本,每次打开vscode就会弹出一个页面,说让你选择版本,1.8不行,一个方法是降低Language Support for Java版本,看别人说是0.64.1及之前的版本就不会弹出这个问题,以前用这个版本解决过问题,但是忘记是哪个版本了。第二个办法就是在那个页面下载个java11,但是咱不用它,

在 VSCode 里写Java 项目(持续更新)_第3张图片

在setting.json中添加这个就行。

"java.configuration.runtimes": [
        {
            "name": "JavaSE-1.8",
            "path": "E:\\Java1.8",
            "default": true
        },
    ],

SpringBoot相关插件

在 VSCode 里写Java 项目(持续更新)_第4张图片

在 VSCode 里写Java 项目(持续更新)_第5张图片

Spring Boot Dashboa,在多模块项目中,展示有哪些可以启动的模块,并且右边有启动和调试按钮 

在 VSCode 里写Java 项目(持续更新)_第6张图片

在 VSCode 里写Java 项目(持续更新)_第7张图片

启动后有在浏览器打开和停止功能

Spring Boot Tools

还没有直观的感受,因为他是在特定位置自动激活运行

Spring Initializr Java Support

构建spring项目的插件,同时能很好的管理依赖,在这里提一点

在用下面Maven插件里的Dependencis文件夹下的找寻的jar包

在 VSCode 里写Java 项目(持续更新)_第8张图片

是无法打开的,但是 Spring Initializr Java Support提供了查看依赖包功能

在 VSCode 里写Java 项目(持续更新)_第9张图片

但是打开的这些文件时编译后的class文件,这时候需要用到反编译插件 

在 VSCode 里写Java 项目(持续更新)_第10张图片

在 VSCode 里写Java 项目(持续更新)_第11张图片

这样就能看依赖包的源码了,但是也有缺点,不知道是不是bug,有的反编译后的文件ctrl+鼠标左键是能跳转的,有的不行。不是特别好用。(或许换个别的插件会有所好转,后面再测)

Maven插件

管理maven的插件,类似于 idea中的

在 VSCode 里写Java 项目(持续更新)_第12张图片

 具备主要功能,刷新maven,使用插件之类的。

2、字体颜色、界面颜色、快捷键模仿IDEA

界面颜色

我习惯于偏黑色底的背景,觉得保护眼睛,不刺眼。然后尽量模仿idea里的Darcula.

 有很多Darcula主题的插件,但是这个插件的字体颜色是最接近idea的。

字体颜色

用了上面那个插件,颜色只有注释和idea不一样,所以修改一下注释颜色就行

在 VSCode 里写Java 项目(持续更新)_第13张图片

在settion.json文件里添加这几行代码就行了,如果还想改别的颜色,也可以在这里改,百度搜

editor.tokenColorCustomizations,就会有一堆配置方法,这里就不赘述了。

// 自定义的颜色
    "editor.tokenColorCustomizations": {
        "comments": "#619549", // 注释
    },

快捷键

装上就可,什么shift+shift, ctrl+shift+/,都可以用上了 

3、阿里巴巴编码规约插件

装上就可以用了,也有一些配置选择,可配可不配 ,详细信息看插件的详情页

4、LeetCode插件

搜的话,会有几个

在 VSCode 里写Java 项目(持续更新)_第14张图片

主要讲讲这几个,第一个是最常规的,但是功能较少,下面会有对比

第二个,java不支持,所以不用看了

第三个,功能还是有点鸡肋,多了个在txt文档写测试用例的方法,然后这个debug功能,我觉得几乎没用,很麻烦,当然,可能是我不会用。我是不推荐用的。因为对比algorithm,简直一个天上一个地地下。

第四个,algorithm,我这个事最近才发现的。十分符合我的要求。下面就详细讲讲这个。

他这个界面是模仿LeetCode,第一个插件的模样,但是功能却强大些

1、相同点

两者都有选择国际版和国内版的地方,搜索题目,提交、测试题目,显示题目(以标签、难度、之类的分类),查看解决办法,随机一题。

2、不同点

algorithm能直接显示每日一题(这样不用去网页端看今天每日一题是哪个),显示周赛,但是以标签查看题目有bug,显示不了。

还有一个问题,点击测试用例的时候,假如有语法错误,结果会以消息框的形式弹出,但是消息框中中文会乱码在 VSCode 里写Java 项目(持续更新)_第15张图片

经过挺长时间的测试,找到了一个解决办法,在algorithm的设置中设置一下javac路径,添加参数

在 VSCode 里写Java 项目(持续更新)_第16张图片

注意是javac -path那行

javac -J-Duser.language=en

最好用地方:Debug模式,超好用

在 VSCode 里写Java 项目(持续更新)_第17张图片

在测试用例和你需要打断点的地方打上断点,然后点击debug就可以了,无需添加其他的代码。

而且添加测试用例也比LeetCode人性化的多。

还有就是添加笔记功能。

但是在调试控制台输出的颜色会不好看,同样去setting文件修改,我这里只改了一下info输出颜色,

    "workbench.colorCustomizations": {
        "debugConsole.infoForeground": "#CCCCCC"
    },

 要改成别的颜色,百度搜workbench.colorCustomizations,会有教程

5、插入类注释、方法注释

这个就不用插件了

在 VSCode 里写Java 项目(持续更新)_第18张图片

在 VSCode 里写Java 项目(持续更新)_第19张图片

找到java.json

在 VSCode 里写Java 项目(持续更新)_第20张图片

"Print to js class": {  //随便取个名字
		"prefix": "classcomment",        //到时候用这个来代替body内容
		"body": [
			"/**",
			" * ",
			" * @author CJH",
			" * @date ${CURRENT_YEAR}/${CURRENT_MONTH}/${CURRENT_DATE} ${CURRENT_HOUR}:${CURRENT_MINUTE}",
			" */"
		],
	},
	"Print to js method": {
		"prefix": "methodcomment",
		"body": [
			"/**",
			" * ",
			" * @author CJH",
			" * @date ${CURRENT_YEAR}/${CURRENT_MONTH}/${CURRENT_DATE} ${CURRENT_HOUR}:${CURRENT_MINUTE}",
			" */"
		],
	},

 效果

在 VSCode 里写Java 项目(持续更新)_第21张图片

在 VSCode 里写Java 项目(持续更新)_第22张图片

但是还是不如IDEA智能,不能解析返回值,参数等信息

6、常规设置

接下来是要去设置界面,或者settings.json文件进行修改

1.进入设置界面

在 VSCode 里写Java 项目(持续更新)_第23张图片

 或者从上方菜单栏的【文件】>>【首选项】>>【设置】

就可以进入到设置界面

在 VSCode 里写Java 项目(持续更新)_第24张图片

 2. 进入settings.json界面。

在 VSCode 里写Java 项目(持续更新)_第25张图片

进入设置界面后,点击右上角的按钮即可进入settings.json

 在 VSCode 里写Java 项目(持续更新)_第26张图片

 3. 自动保存在 VSCode 里写Java 项目(持续更新)_第27张图片

 通过图片上方搜索框搜索【Auto Save】可以直达自动设置。

或者在上方菜单栏找到【文件】>>【自动保存】,点击勾选。

在 VSCode 里写Java 项目(持续更新)_第28张图片

选项的解释就在下方,这点还不错,知道这样设置有什么用。如果不清楚还可以百度搜搜效果,或者自己试试是不是自己想要的效果。

7、输出信息输出到调试控制台,而非终端

VSCode有三个输出 输出结果的地方在 VSCode 里写Java 项目(持续更新)_第29张图片

我推荐把输出输出到调试控制台 

在 VSCode 里写Java 项目(持续更新)_第30张图片

找到项目里的这个文件,

在 VSCode 里写Java 项目(持续更新)_第31张图片

添加 "console": "internalConsole",即可,

为什么要输出到这呢,因为如果输出到终端,是没法清空终端的,

 但是控制台是有清空功能的,而且在debug模式下还有变量的调试功能,在 VSCode 里写Java 项目(持续更新)_第32张图片

 为什么不输出到输出,我只想到了用Code Runner插件可以把输出输出到输出,但是这种情况是无法输入的,而且还有乱码问题,所以忽略了

二、遇到的问题

1、Java文件名改名,类名跟着修改了,但是依旧报错

        这个忘了当时怎么解决的了, 

        关了VSCode,重新打开?

        自己手输一遍?

        再不行,复制代码,重新新建一个java文件。

        ps. 尽量在这里进行重命名

在 VSCode 里写Java 项目(持续更新)_第33张图片

2、Junit单元测试,pom文件添加了依赖,但是@Test没用

        2022.01.22 突然发现没这个问题了。

3、Organize import之后,别的包的类报错。

        解决办法,关了VSCode,重新进来。

4、Debug模式,到断点的时候界面会卡住。

        解决办法,双击VSCode最上面,全屏/非全屏切换一下就好了。

        2022.01.22 突然发现没这个问题了。

5、POM文件报错,在idea里面又不报错。

        因为修改了maven的setting文件,导致的vscode中pom文件第一行第一个字符就报错,报错内容是包因为权限问题导不进来。但是拥有权限,而且在idea中并没有报错。

        在 VSCode 里写Java 项目(持续更新)_第34张图片

然后就莫名其妙的好了,要是pom文件报错,可以尝试此方法,反正不会造成更多的问题。

6、 this.extensionApi.serverReady is not a function

        我也没有细致去看VsCode日志,我的问题是由于某个插件版本太低,导致依赖此插件的插件报了这个错。

        查看VsCode日志方法 ctrl + shift + p,搜索Open All Log Files

在 VSCode 里写Java 项目(持续更新)_第35张图片

 7、编写代码的时候CPU占比特别高。

在 VSCode 里写Java 项目(持续更新)_第36张图片

        这个问题还没找到解决办法,有时候右键直接结束进程可以,但是有时候会结束掉调试进程。

        但是能确定是哪个插件有问题。ctrl + shift + p 搜索在 VSCode 里写Java 项目(持续更新)_第37张图片

三、不好用的地方

1、暂时没找到插件来解决依赖搜索

在IDEA里面shift+shift是能搜索到依赖包里的类,但是VSCode搜索功能做不到,只能通过这种方式快速找到依赖包里的类

在类中引用依赖包的类,然后ctrl+鼠标左键跳转过去

在 VSCode 里写Java 项目(持续更新)_第38张图片

 这样跳转过去

2、复制的代码里面要是用到了别的类,引用不会一起复制过来

简单办法

 把没有引用的类,最后一个字母删了,重新输入最后一个字母,然后会有代码提示,让你选择引用哪个类,然后上面的引用就有了

在 VSCode 里写Java 项目(持续更新)_第39张图片

就会自己补全 

3、报错提示不明显

在 VSCode 里写Java 项目(持续更新)_第40张图片

         这个错误是参数的类型没有导入,但是不会告诉你是哪个地方的参数类型没有导入,你得自己找了

4、给maven依赖包中的class文件打断点无法生效

        这个我觉得有可能是还得再找找别的插件,因为IDEA是可以实现的

四、使用指南

1、@Override

 重写父类方法有两种方式

 1、利用提示功能

在 VSCode 里写Java 项目(持续更新)_第41张图片 在 VSCode 里写Java 项目(持续更新)_第42张图片

虽然会给你补全代码,但是前提是你要知道重写的方法名是什么

2、右键->源代码操作(Source Action)->Override/Implement Metheds

在 VSCode 里写Java 项目(持续更新)_第43张图片

2、热部署

在 VSCode 里写Java 项目(持续更新)_第44张图片

 在更新代码后,无需重启项目,点击热部署按钮就可以快速检验自己的功能。速度很快。

3、搜索请求地址的url对应的方法

在 VSCode 里写Java 项目(持续更新)_第45张图片

 在侧边栏的SpringBoot Dashboard中可以搜索url。点击快速定位到url对应的方法。

4、代码重构预览

在 VSCode 里写Java 项目(持续更新)_第46张图片

 然后点击下方的更改项

在 VSCode 里写Java 项目(持续更新)_第47张图片

就会弹出更改项的对比

你可能感兴趣的:(VScode_Java环境配置,java,vscode,idea)