文章目录
一、前言
一般来说是不推荐使用vscode来开发java项目的;想要选择某个IDE(集成开发环境)来做java项目开发一般都推荐使用更专业的开发java项目的IDE,如:Eclipse、IDEA等,专业开发java项目的IDE(集成开发环境)能更好的实现某些高级的复杂操作,对大项目开发有更好的适配,没有那么多问题,有问题也能很好解决。但是按耐不住程序员爱折腾的心就是想使用vscode开发java项目;又或者是因为公司担心版权收费的问题,又或者是因为公司对使用的软件有着各种审查、申请等麻烦的事情才能用新版专业的IDE,又或者因为其他某些原因其他专业的IDE不能很好的使用,只能来折腾vscode了。
其实经过多年的升级迭代和发展使用vscode开发java项目也已经比较成熟了,没有什么大问题了,也算是比较好用的了,只是许多人的习惯没能从专业的IDE中换过来而已,习惯一下就好。
二、前期准备
- 下载并安装好JDK,配置好环境变量。这个步骤网上有许多教程也很实用,这里就不着重介绍这个步骤了。
- 下载好Maven并配置好Maven的环境变量。这个步骤网上有许多教程也很实用,这里就不着重介绍这个步骤了。
- 下载安装好vscode。网站:https://code.visualstudio.com/。跟傻瓜式安装没什么区别,安装的过程中读清楚它的提示窗口的内容就行了
三、vscode介绍
Visual Studio Code(简称VS Code)是由微软开发的一款免费、开源的代码编辑器。它支持多种编程语言的语法高亮、智能代码补全、自定义快捷键、代码重构等特性,并且支持插件生态系统,使得用户可以根据自己的需求来扩展编辑器的功能。
以下是VS Code的一些主要特点:
- 跨平台支持:VS Code可以在Windows、macOS和Linux操作系统上运行。
- 丰富的插件生态系统:用户可以通过安装插件来增加新的语言支持、主题、调试工具等。
- 内置Git支持:VS Code内置了Git版本控制系统,支持代码的版本控制和协同工作。
- 调试功能:它提供了一个强大的调试工具,支持多种语言和运行环境。
- 代码片段和模板:用户可以创建自定义的代码片段和模板,以加快开发速度。
- 多工作区:VS Code支持多工作区,允许用户同时打开多个项目,并在它们之间轻松切换。
- 终端集成:内置终端允许用户在编辑器内部直接运行命令行工具。
- 代码高亮和语法提示:支持多种编程语言的语法高亮,以及智能的代码补全和代码提示。
- 自定义主题和快捷键:用户可以根据自己的喜好自定义编辑器的外观和快捷键。
- 实时预览:对于前端开发,VS Code支持实时预览功能,可以在编写代码时即时查看效果。
- 性能优化:VS Code在性能上做了优化,即使在处理大型项目时也能保持流畅。
- 远程开发:VS Code支持远程开发功能,可以连接到远程服务器进行开发。
VS Code因其轻量级、功能强大和高度可定制性而受到许多开发者的喜爱,成为了现代开发环境中非常流行的工具之一。
第一次用或者对vscode不是很熟悉的朋友可以先将vscode简单的理解为一个超级文本编辑器,它并不是一个IDE(集成开发环境)它需要通过插件来达到一个IDE(集成开发环境)的效果。
四、下载与java开发相关的插件
上面所说的内容介绍过:vscode可以简单的理解为一个超级文本编辑器,它并不是一个IDE(集成开发环境)它需要通过插件来达到一个IDE(集成开发环境)的效果,所以要想实现 vscode 开发java项目就需要下载跟java开发有关的插件。
这里就介绍下面几个有关java开发相关的插件。更多好用的插件自己去插件市场寻找。
vscode的插件市场里面有丰富的插件生态,通过插件市场官网去认识了解并去使用插件,能帮助开发者很好的完成项目开发工作,也能让使用者越用越顺手。
插件市场的网址:https://marketplace.visualstudio.com/VSCode
4.1、下载一个汉化插件
下载汉化插件可以让 vscode 许多操作选项和提示内容等以中文的形式展现,以便于让中国国内的许多人更好的上手使用 vscode 。如果是英语比较好的朋友,或者觉得使用中文的程序员比较low可以不用下载使用这个插件。
4.2、下载 java 扩展包插件
在 vscode 的插件市场下载 Extension Pack for Java 插件;这个插件就是开发 java 项目的关键。有了它就能愉快的开发java项目,编写java代码啦。
操作步骤如下图所示:
五、设置好java开发环境
按照下面的图片介绍配置好java开发环境。
下面是一个设置好 java 开发环境的 setting.json 文件,可以参考着去配置,不喜欢的这样配置的可以自己改。
{
"editor.fontSize": 16, // 文本编辑器的字体大小,可以将整改 editor.fontSize 放在设置那里搜索
"liveServer.settings.donotVerifyTags": true, // liveServer插件的设置,跟java无关
"liveServer.settings.donotShowInfoMsg": true, // liveServer插件的设置,跟java无关
"explorer.confirmDelete": false, // 删除文件时,是否提示放入回收站
"explorer.confirmDragAndDrop": false, // 拖移文件时,是否提示确认
"security.workspace.trust.untrustedFiles": "open",// 受信任工作区那个提示,可以将整个 security.workspace.trust.untrustedFiles 放在设置那里搜索
"liveServer.settings.CustomBrowser": "chrome", // liveServer插件的设置,跟java无关
"javascript.updateImportsOnFileMove.enabled": "always", //跟java无关
"emmet.triggerExpansionOnTab": true, //跟java无关
"redhat.telemetry.enabled": true, // 跟java有关,启用将使用数据和错误发送到Red Hat服务器。请阅读我们的隐私声明。
// Maven的相关配置信息
"java.configuration.maven.globalSettings": "D:\maven\apache-maven-3.6.3\conf\settings.xml", // maven 全局 settings 文件
"java.maven.downloadSources": true, //让maven下载源码
"java.configuration.maven.userSettings": "", // 配置 maven settings 文件,配置了全局 settings 文件在这里就可以不用写了。
"maven.executable.path": "D:\maven\apache-maven-3.6.3\bin\mvn.cmd", //指定mvn可执行文件的绝对路径。当此值为空时,它会根据maven.executable.preferMavenwrapper的值尝试使用mvn或mvnw
"maven.settingsFile": "D:\maven\apache-maven-3.6.3\conf\settings.xml", // 指定 maven 配置文件的绝对路径,默认是 ~/.m2/settings.xml。配上也行,不配好像也没有什么影响
"maven.executable.options": "-DarchetypeCatalog=internal", // 指定所有mvn命令的默认选项。
// Java相关配置信息,配置使用的JDK如果安装了多个JDK可以在这个数组上多配一个,但是记得默认用哪个就需要加上"default": true,电脑只是安装了一个JDK这个可以不用配置。
"java.configuration.runtimes": [
{
"name": "JavaSE-1.8",
"path": "C:\Program Files\Java\jdk1.8.0_181",
"default": true
}
],
"rsp-ui.enableStartServerOnActivation": [ // 跟 Community Server 插件有关的配置吧,应该是跟java有关系的。但是不要乱配置,认识这个配置后在配置
{
"id": "redhat.vscode-community-server-connector",
"name": "Community Server Connector",
"startOnActivation": true
}
],
"java.jdt.ls.java.home": "c:\Program Files\Java\jdk1.8.0_181", //配一下jdk路径,有一些不同版本的插件又不叫 java.jdt.ls.java.home,注意甄别。
}
这样的配置内容是根据插件提供的配置项来编写的。并不是乱写乱配置的而是有依据的。
下面就拿其中一个插件的配置项做一下介绍:
六、创建项目
6.1、创建普通的 java 项目
6.2、基于 maven 创建普通的 java 项目
6.3、创建基于 maven 的javaweb项目
6.3.1、创建操作
6.3.2、编写pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>vscode_maven_web_project</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>vscode_maven_web_project Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<!-- 写上下面所示的这3个子节点,就能设置当前项目编译级别 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<!--
这里创建的javaweb项目是以一个简单的servlet作为示例。
由于是采用 Maven 的 tomcat 插件的方式,在编写代码的时候是缺失必要的javax.servlet.http.HttpServlet相关的类的,
所以需要在Maven的pom.xml的文件中添加上servlet的相关依赖。
-->
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<!--
如果不设置 <scope>provided</scope> 或者设置为 compile,在打包的时候会将 serlvet-api.jar 一起打包,
然后将打包好的 war 包部署到服务器(另外一个电脑)中的 tomcat 里面,
这样会跟服务器中(另外一个电脑)的 tomcat 内部存在的 servlet-api.jar 包冲突。会导致运行出问题。
这个涉及到的是Maven的依赖作用范围的知识,这里就不过多的介绍,有兴趣自行去查找Maven的依赖作用范围相关资料去学习。
-->
<scope>provided</scope>
</dependency>
<!--
如果还用到JSP的话,还要加上JSP相关依赖,记得还是要加上 <scope>provided</scope>
总的来说,如果使用到tomcat自带jar包,将项目中依赖作用范围设置为:provided 其他依赖可以默认
-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId><!-- 用不到这个依赖就把这个依赖给删掉。 -->
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>vscode_maven_web_project</finalName>
</build>
</project>
6.3.3、编写 web.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<!-- 这个节点要与不要都行,或者修改一下标签里面的文本内容 -->
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>com.xxx.demo.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
6.3.4、编写 servlet 代码
package com.xxx.demo;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//super.doGet(req, resp);
System.out.println("----------vscode---------");
PrintWriter out = response.getWriter();
out.write("hello world");
out.flush();
out.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
//super.doPost(req, resp);
}
}
6.3.5、配置tomcat
6.4、创建Spring boot项目
七、快捷键设置
7.1、介绍
为了能让开发者有更高的项目开发效率,在 vscode 中默认定义了许多快捷键,快捷键的查阅方式如下:
7.2、常用的快捷键
Ctrl+X(剪切) 、
Ctrl+C(复制)、
Ctrl+V(粘贴)、
Ctrl+S(保存)、
Ctrl+A(全选)、
Ctrl+F(搜索)、
Ctrl+H(替换)、
Ctrl+Shift+K(删除一行)、
Ctrl+/(注释一行代码 或者 解除一行代码的注释,多行注释也可以中这个)
Shift+Alt+A(多行注释 或者 解除多行注释)(其实他就是一个代码块注释,不是标准的多行注释)
Alt+ ↑ / ↓(上下移动一行)、
Shift+Alt + ↓ / ↑(上下复制一行)、
Ctrl+Enter(当前行跳到下面插入一行空白行,比回车键好用)、
Ctrl+Shift+Enter(当前行跳到上面插入一行空白行,比回车键好用)、
Ctrl + 空格 或者 Ctrl + I(代码提示)(一般用 Ctrl + I )( Ctrl + 空格 有些时候不行)
在java中还有两个快捷键比较常用;分别是:Shift + Alt + O(导入包也就是导入package)、F2(批量修改变量)
不喜欢上面的快捷键操作方式,可以自定义修改;怎样修改下面会有介绍。
7.3、详细的快捷键介绍
下面是对现有的一些快捷键的整理于总结所作出的列表,有一些可能是不对的,需要自行去检查甄别。
按 Press | 功能 Function |
---|---|
Ctrl + Shift + P 或者 F1 | 显示命令面板 Show Command Palette |
Ctrl + P | 快速打开 Quick Open |
Ctrl + Shift + N | 新窗口/实例 New window/instance |
Ctrl + Shift + W | 关闭窗口/实例 Close window/instance |
7.3.1、基础编辑 Basic editing
按 Press | 功能 Function |
---|---|
Ctrl+X | 剪切行(空选定) Cut line (empty selection) |
Ctrl+C | 复制行(空选定)Copy line (empty selection) |
Alt+ ↑ / ↓ | 向上/向下移动行 Move line up/down |
Shift+Alt + ↓ / ↑ | 向上/向下复制行 Copy line up/down |
Ctrl+Shift+K | 删除行 Delete line |
Ctrl+Enter | 在下面插入行 Insert line below |
Ctrl+Shift+Enter | 在上面插入行 Insert line above |
Ctrl+Shift+\ | 跳到匹配的括号 Jump to matching bracket |
Ctrl+] / [ | 缩进/缩进行 Indent/outdent line |
Home | 转到行首 Go to beginning of line |
End | 转到行尾 Go to end of line |
Ctrl+Home | 转到文件开头 Go to beginning of file |
Ctrl+End | 转到文件末尾 Go to end of file |
Ctrl+↑ / ↓ | 向上/向下滚动行 Scroll line up/down |
Alt+PgUp / PgDown | 向上/向下滚动页面 Scroll page up/down |
Ctrl+Shift+[ | 折叠(折叠)区域 Fold (collapse) region |
Ctrl+Shift+] | 展开(未折叠)区域 Unfold (uncollapse) region |
Ctrl+K Ctrl+[ | 折叠(未折叠)所有子区域 Fold (collapse) all subregions |
Ctrl+K Ctrl+] | 展开(未折叠)所有子区域 Unfold (uncollapse) all subregions |
Ctrl+K Ctrl+0 | 折叠(折叠)所有区域 Fold (collapse) all regions |
Ctrl+K Ctrl+J | 展开(未折叠)所有区域 Unfold (uncollapse) all regions |
Ctrl+K Ctrl+C | 添加行注释 Add line comment |
Ctrl+K Ctrl+U | 删除行注释 Remove line comment |
Ctrl+/ | 切换行注释 Toggle line comment |
Shift+Alt+A | 切换块注释 Toggle block comment |
Alt+Z | 切换换行 Toggle word wrap(代码溢出自动换行) |
7.3.2、导航 Navigation
按 Press | 功能 Function |
---|---|
Ctrl + T | 显示所有符号 Show all Symbols |
Ctrl + G | 转到行… Go to Line… |
Ctrl + P | 转到文件… Go to File… |
Ctrl + Shift + O | 转到符号… Go to Symbol… |
Ctrl + Shift + M | 显示问题面板 Show Problems panel |
F8 | 转到下一个错误或警告 Go to next error or warning |
Shift + F8 | 转到上一个错误或警告 Go to previous error or warning |
Ctrl + Shift + Tab | 导航编辑器组历史记录 Navigate editor group history |
Alt + ←/→ | 返回/前进 Go back / forward |
Ctrl + M | 切换选项卡移动焦点 Toggle Tab moves focus |
7.3.3、搜索和替换 Search and replace
按 Press | 功能 Function |
---|---|
Ctrl + F | 查找 Find |
Ctrl + H | 替换 Replace |
F3 / Shift + F3 | 查找下一个/上一个 Find next/previous |
Alt + Enter | 选择查找匹配的所有出现 Select all occurences of Find match |
Ctrl + D | 将选择添加到下一个查找匹配 Add selection to next Find match |
Ctrl + K Ctrl + D | 将最后一个选择移至下一个查找匹配项 Move last selection to next Find match |
Alt + C / R / W | 切换区分大小写/正则表达式/整个词 Toggle case-sensitive / regex / whole word |
7.3.4、多光标和选择 Multi-cursor and selection
按 Press | 功能 Function |
---|---|
Alt +单击 | 插入光标 Insert cursor |
Ctrl + Alt +↑/↓ | 在上/下插入光标 Insert cursor above / below |
Ctrl + U | 撤消上一个光标操作 Undo last cursor operation |
Shift + Alt + I | 在选定的每一行的末尾插入光标 Insert cursor at end of each line selected |
Ctrl + I | 选择当前行 Select current line |
Ctrl + Shift + L | 选择当前选择的所有出现 Select all occurrences of current selection |
Ctrl + F2 | 选择当前字的所有出现 Select all occurrences of current word |
Shift + Alt + → | 展开选择 Expand selection |
Shift + Alt + ← | 缩小选择 Shrink selection |
Shift + Alt + (拖动鼠标) | 列(框)选择 Column (box) selection(块状选择) |
Ctrl + Shift + Alt +(箭头键) | 列(框)选择 Column (box) selection |
Ctrl + Shift + Alt + PgUp / PgDown | 列(框)选择页上/下 Column (box) selection page up/down |
7.3.5、丰富的语言编辑 Rich languages editing
按 Press | 功能 Function |
---|---|
Ctrl + 空格 | 触发建议(也就是提示) Trigger suggestion |
Ctrl + Shift + Space | 触发器参数提示 Trigger parameter hints |
Tab | Emmet 展开缩写 Emmet expand abbreviation |
Shift + Alt + F | 格式化文档 Format document |
Ctrl + K Ctrl + F | 格式选定区域 Format selection |
F12 | 转到定义 Go to Definition |
Alt + F12 | Peek定义 Peek Definition |
Ctrl + K F12 | 打开定义到边 Open Definition to the side |
Ctrl + . | 快速解决 Quick Fix |
Shift + F12 | 显示引用 Show References |
F2 | 重命名符号 Rename Symbol |
Ctrl + Shift + . /, | 替换为下一个/上一个值 Replace with next/previous value |
Ctrl + K Ctrl + X | 修剪尾随空格 Trim trailing whitespace |
Ctrl + K M | 更改文件语言 Change file language |
7.3.6、编辑器管理 Editor management
按 Press | 功能 Function |
---|---|
Ctrl+F4, Ctrl+W | 关闭编辑器 Close editor |
Ctrl+K F | 关闭文件夹 Close folder |
Ctrl+\ | 拆分编辑器 Split editor |
Ctrl+ 1 / 2 / 3 | 聚焦到第1,第2或第3编辑器组 Focus into 1st, 2nd or 3rd editor group |
Ctrl+K Ctrl+ ←/→ | 聚焦到上一个/下一个编辑器组 Focus into previous/next editor group |
Ctrl+Shift+PgUp / PgDown | 向左/向右移动编辑器 Move editor left/right |
Ctrl+K ← / → | 移动活动编辑器组 Move active editor group |
7.3.7、文件管理 File management
按 Press | 功能 Function |
---|---|
Ctrl+N | 新文件 New File |
Ctrl+O | 打开文件… Open File… |
Ctrl+S | 保存 Save |
Ctrl+Shift+S | 另存为… Save As… |
Ctrl+K S | 全部保存 Save All |
Ctrl+F4 | 关闭 Close |
Ctrl+K Ctrl+W | 关闭所有 Close All |
Ctrl+Shift+T | 重新打开关闭的编辑器 Reopen closed editor |
Ctrl+K | 输入保持打开 Enter Keep Open |
Ctrl+Tab | 打开下一个 Open next |
Ctrl+Shift+Tab | 打开上一个 Open previous |
Ctrl+K P | 复制活动文件的路径 Copy path of active file |
Ctrl+K R | 显示资源管理器中的活动文件 Reveal active file in Explorer |
Ctrl+K O | 显示新窗口/实例中的活动文件 Show active file in new window/instance |
7.3.8、显示 Display
按 Press | 功能 Function |
---|---|
F11 | 切换全屏 Toggle full screen |
Shift+Alt+1 | 切换编辑器布局 Toggle editor layout |
Ctrl+ = / - | 放大/缩小 Zoom in/out |
Ctrl+B | 切换侧栏可见性 Toggle Sidebar visibility |
Ctrl+Shift+E | 显示浏览器/切换焦点 Show Explorer / Toggle focus |
Ctrl+Shift+F | 显示搜索 Show Search |
Ctrl+Shift+G | 显示Git Show Git |
Ctrl+Shift+D | 显示调试 Show Debug |
Ctrl+Shift+X | 显示扩展 Show Extensions |
Ctrl+Shift+H | 替换文件 Replace in files |
Ctrl+Shift+J | 切换搜索详细信息 Toggle Search details |
Ctrl+Shift+C | 打开新命令提示符/终端 Open new command prompt/terminal |
Ctrl+Shift+U | 显示输出面板 Show Output panel |
Ctrl+Shift+V | 切换Markdown预览 Toggle Markdown preview |
Ctrl+K V | 从旁边打开Markdown预览 Open Markdown preview to the side |
7.3.9、调试 Debug
按 Press | 功能 Function |
---|---|
F9 | 切换断点 Toggle breakpoint |
F5 | 开始/继续 Start/Continue |
Shift+F5 | 停止 Stop |
F11 / Shift+F11 | 下一步/上一步 Step into/out |
F10 | 跳过 Step over |
Ctrl+K Ctrl+I | 显示悬停 Show hover |
7.3.10、集成终端 Integrated terminal
按 Press | 功能 Function |
---|---|
Ctrl+` | 显示集成终端 Show integrated terminal |
Ctrl+Shift+` | 创建新终端 Create new terminal |
Ctrl+Shift+C | 复制选定 Copy selection |
Ctrl+Shift+V | 粘贴到活动端子 Paste into active terminal |
Ctrl+↑ / ↓ | 向上/向下滚动 Scroll up/down |
Shift+PgUp / PgDown | 向上/向下滚动页面 Scroll page up/down |
Ctrl+Home / End | 滚动到顶部/底部 Scroll to top/bottom |
7.4、修改快捷键
在vscode中的快捷键可能跟其他的开发工具的不一样;不习惯,不喜欢用 vscode 内部定义好的快捷键,可以根据自己的喜好自定义快捷键。
下面的图片介绍的是如何修改快捷键的一个例子:
八、其他
8.1、eclipse或者IDEA主题
习惯了eclipse的代码可以下载 Familiar Java Themes插件 或者 Eclipse theme by Solrike 插件。Eclipse theme by Solrike 会好一点。(也就是 Eclipse 的主题,Familiar Java Themes这个主题包含了eclipse,还有IDEA的主题,看个人喜欢的来使用)
8.2、热部署插件
使用Deploy插件,当你修改项目后,不管是前端页面文件还是后端的Java文件,只要修改了,然后ctrl+s保存下,Deploy就会工作,更新target对应的项目文件。然后浏览器刷新一下就可以展示出最新的结果,无需重启服务器。