Visual Studio Code 配置java开发环境

2023-11-03

最近在学习算法,有时需要在自己的机器上调试一下代码。有些算法题目的题解是用java编的,因为这类代码只是单个的java文件,所以不想动用MyEclipse那样的重型工具。正好机器上有一个轻量级的VS Code,我就试着在上面搭了一个java开发环境。

VS Code本身是不支持调试java程序的,但它支持通过安装扩展来实现开发和调试程序。本文简单记录一下配置过程和遇到的问题。整个配置过程并不是一帆风顺,但好在问题都被我有意或无意地解决了。步骤看起来很杂乱,但是有效的步骤只有三、四步,适用的VS Code版本是1.27.2。

1. 首先准备好一个java文件,在VS Code中打开后缀名是.java的文件,程序会弹出安装Java Extension Pack的提示,如果没有出现提示,就在扩展选项中搜索一下这个插件(快捷键 Ctrl+Shift+X)。安装Java Extension Pack的同时,还会自动安装图中的这些插件。有的用于调试程序,有的用于构建大型项目。

2. 插件安装成功后,并不能直接运行java程序,还需要编辑配置文件。打开调试窗口(快捷键 Ctrl+Shift+D),点击右上角的齿轮icon(如果出现错误提示请先打开一个文件夹以进行高级调试配置,也就是说只打开java文件还不够,还需要打开java文件所在的目录。)会提示选择环境,点击java,自动在当前工作目录下生成一个launch.json文件。

3. 生成的配置文件有3项配置,我把没有用的配置删掉,编辑mainClass属性指定主类,剩下的内容如上图所示。如果主类在更深的文件夹中,它也可以指定为"com.abc.def.class"的形式。

4. 此时可以试着敲击F5看程序能否运行,如果出现错误提示“Java runtime could not be located”,说明JAVA环境变量配置有问题。点开错误提示的管理扩展,看到有如下几种设置SDK的方式。我配置了JAVA_HOME和系统环境变量后,成功运行了一次程序,之后竟又出现同样的错误提示。于是我又按照第一种方式进行配置。

5. 选择文件->首选项->设置,打开Settings,在搜索框里搜索java.home,点击右侧窗口“在settings.json中编辑”链接

6. 点击如下界面左侧的铅笔icon,在设置中替换,右侧窗口的用户配置会增加一条java.home配置,属性值设为JAVA SDK的绝对路径"C:\\Program Files\\Java\\jdk1.8.0_121"。用同样的方法更改工作区设置,这些设置会覆盖默认设置。

7. 如果配置成功,重启VS Code后,底部提示栏会出现一个100% Starting Java Language Server的提示,代码编辑器中被插入Run|Debug按钮。

8. 点击Run,或按F5开始调试程序,如果出现错误提示"Build failed, do you want to continue?",一般是程序代码有问题,如果确定代码没问题,可以点击Learn More寻找其他的解决方案。我在遇见这个错误的时候,感觉代码上没问题,但换了一段代码后,问题解决。

9. 再次运行程序,又抛出异常,这属于是激动造成的低级错误,import java.util.ArrayList;后,问题解决。

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
ArrayList cannot be resolved to a type

至此,环境配置成功。

VS Code能满足日常开发和调试的最低需求。整体上,用它编辑和调试代码给人一种简约迅捷,身心愉悦的感觉。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio Code 配置java开发环境 的相关文章

  • 第三节课总结之关于this指向,变量提升以及跨域的解决方案

    this 变量提升 关于继承 跨域解决方法 gt gt this指向 Js是静态作用域 是在定义阶段就决定好了的 而不是在执行阶段才决定的 参考资料 https developer mozilla org en US docs Web Ja
  • 华为机试(字符串消消乐---Java实现)

    package test import java util Scanner 消消乐 字符串 描述 给定一个只包含大小写字母的字符串 大小写敏感 若相邻两个元素相等则消除 直到最后字符串消除不了了 输出消消乐后字符串的长度 若遇到非大小写字母
  • 谈谈我接触过的几个前端框架。

    1 justified gallery框架 jQuery justified gallery插件允许你在一个合理的空间内创建响应式 无限滚动 高品质的画廊 并填充满所有的空间 插件主要特性 无需在意像素 使用一种先进的算法无需剪裁图像进行自
  • APP生成器原理

    很久之前看到过APP生成器 作用 如图 你选择写几句话 然后填写APP名称和启动图 图标等东西即可立即生成一个属于你的APP 原理 通过修改文件就行 当然你的模板APP在内容上调用资源文件中的资源 如我的APP 调用资源文件中的txt 实现
  • java转go语言,值得转吗?

    有这个想法的不在少数了 也就意味着这条路并不是想想的那样 Java确实比以前卷了 但是你能保证转过去比别人做的更好 别拿自己的劣势跟别人的优势争 先守好自己的一亩三分地 把技术提高一个层次 相对来说卷的人数就少了 其实拿GO语言和JAVA相
  • vue遍历Map,Map在vue中的使用方法

    Map在vue中的使用方法 html 遍历的时候要遍历两遍
  • sprintf, snprintf, _snprintf, sprintf_s 等的区别

    先放结论 1 在支持snpritf的编译器 只使用int snprintf char buffer size t count const char format argument 无论成功或者失败 都会返回字符串的总长度 不包括结束符 如果
  • android 之 如何让app没有图标

    我们有时候需要让我们的app没有图标 不要问我没有图标要干啥 我只是说的一个需求 单讲技术不说别的 首先我们要获得 PackageManager 的对象 PackageManager packageManager getPackageMan
  • 不管人工智能发展如何 开发者都有必要了解 Linux 内核

    Linux内核在计算机世界的地位有目共睹 称它为计算机世界的基石也不为过 而且它还是全球最大的开源项目 几乎最知名的科技公司都参与其中 包括谷歌 Red Hat SUSE Intel Facebook 甲骨文和华为等 当然还包括Linux的
  • HTTP协议实例详解

    HTTP是一个应用层协议 由请求和响应构成 是一个标准的客户端服务模型 HTTP通常承载于TCP协议之上 有时候也承载于TLS或SSL协议层之上 这个时候 就成了常说的HTTPS 默认HTTP的端口号为80 HTTPS的端口号为443 缺点
  • 前端,后端,全栈哪个好找工作?

    职场老油子说说 现在啥岗位不好找工作 啥 想钱多 活少 离家近 最好单位发异性 这得靠实力 运气 如果是刚毕业 啥都不懂但又想从事技术行业 可以到职场上历练 而不是说报个培训机构 他们只能解决你的焦虑问题 而不是实际问题 如果只是混个工作
  • 大厂Code Review 流程

    提交cr的流程 检查代码风格 可以安装googlestyle或者Alibaba的一些stylecheck工具 也许各开发团队会有自己的风格规范 从mainline中同步代码 注意使用 git pull rebase 而不是 git pull
  • JAVA之初识springMVC框架

    1 环境 操作系统 Mac OS 10 12 6 Tomcat v7 0 JDK 1 7 工具 eclipse 2 新建项目 用eclipse新建项目 选择Dynamic Web Project 将项目字符集改为UTF 8 3 编辑web
  • RGMII信号是什么样子的----大揭秘

    RGMII信号 测试 1 测试RGMII 先判断RGMII信号频率多少 就知道是千兆百兆的模式 发送时钟信号 速率为Gbit s时 时钟速率为125MHz 速率为100Mbit s时 速率为25MHz 速率为10Mbit s时 速率为2 5
  • 三招搞定你的ubuntu安全问题

    本篇主要介绍以下三个部分 反病毒引擎clamav的安装和使用 ubuntu ufw限制访问地址 ubuntu用户连接失败锁定指定时间 反病毒引擎clamav的安装和使用 简介 ClamAV是一款开源的反病毒引擎 用于检测病毒 特洛伊木马 恶
  • mysql 字符集问题整理

    mysql 字符集问题整理 一直对mysql字符集没有明确的概念 mysql为了方便 设置了各种层级的字符集 最近在移植mat数据库时 顺便把这个问题整理清楚 供参考和学习 文章最后有word版本 有两张图片以及不同文字的颜色区分 首先是M
  • XSS & SQL injection

    作者 CyberPhreak XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X Web Security XSS more X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 介绍在这篇文章中我将说明所有关于X
  • 求最大公约数,和最小公倍数的规则

    求最大公约数 和最小公倍数的规则 最大公约数 Greatest Common Divisor 简称GCD 是指两个或多个整数共有约数中最大的一个 例如 12和18的最大公约数是6 因为12和18同时都能被6整除 求最大公约数的规则包括 辗转
  • ySql.Data.Types.MySqlConversionException: Unable to convert MySQL date/time value to System.DateTime

    public DateTime Createtime MySql Data Types MySqlConversionException Unable to convert MySQL date time value to System D
  • 对技术行业的深度思考

    技术行业是当今世界最为热门和发展迅猛的领域之一 无论是互联网 人工智能还是区块链 技术的快速发展正在改变着我们的生活和社会 然而 我们是否真正思考过技术在我们生活中的影响和意义 本文将对技术行业展开深度思考 探讨其带来的优势与挑战 以及如何

随机推荐

  • HIve中的查询语句

    文章目录 Hive中的查询语句 1 基础语法 2 基本查询 Select From 2 1 数据准备 0 原始数据 1 创建部门表 2 创建员工表 3 导入数据 2 2 全表和特定列查询 1 全表查询 2 选择特定列查询 2 3 列别名 1
  • kafka相关操作命令

    kafka相关操作命令 原文链接 https blog csdn net wf3612581 article details 81842574 1 开启zookeeper集群 startzk sh 2 开启kafka集群 start kaf
  • 【修电脑】VMware 从GHO文件备份恢复Win10/Win7系统

    修电脑 VMware 从GHO文件备份恢复Win10 Win7系统 注意 参考 硬盘知识 一 硬盘接口的分类 二 硬盘的分类 按照硬盘材质分为两大类 按照接口类型区分 boot启动知识 Legacy BIOS引导 uefi引导启动流程 查看
  • 区块链关键机制分析

    区块链中三大关键机制 密码算法 1 Hash算法 2 非对称加密算法 3 数字签名 存储结构 共识机制 1 工作量证明 POW 2 权益证明 POS 3 股份授权证明 DPOS 4 实用拜占庭容错 PBFT 5 Raft算法 6 Rippl
  • ubuntu18.04升级cmake

    下载cmake cmake官网 https cmake org download sudo apt get install y build essential libssl dev wget https github com Kitware
  • C++ 的 decltype 详细介绍

    1 基本介绍 decltype 是 C 11 新增的一个用来推导表达式类型的关键字 和 auto 的功能一样 用来在 编译时期 进行自动类型推导 引入 decltype 是因为 auto 并不适用于所有的自动类型推导场景 在某些特殊情况下
  • 大数据学习连载03篇:分布式技术(集群、负载、弹性、故障等知识点)

    分布式技术 一 为什么需要分布式 1 计算问题 无论是我们在学校刚开始学编程 还是在刚参加工作开始处理实际问题 写出来的程序都是很简单的 因为面对的问题很简单 以处理数据为例 可能只是把一个几十K的文件解析下 然后生成一个词频分析的报告 很
  • 怎么debug_装完机电脑点不亮怎么办?不妨看看你主板上的Debug灯

    Hello大家好 我是兼容机之家的小牛 如果你加入了一个电脑硬件爱好者的群 那么你肯定会发现一件事 那就是每天都会有小白装机点不亮在群里求助 问群问了大半天也没弄好 小牛今天来教你一个窍门 能快速判断好自己的电脑到底出了什么故障 既然你自己
  • Python实战项目:flask人脸识别图书系统(上)

    flask人脸识别图书系统 上 涉及内容 爬虫 开发 数据分析 a 前端界面的技术 gt jquery bootstrap b 后面逻辑 gt flask 前后端半分离技术 使用模块 flask 蓝图 blue print c 收集的图书数
  • Qt 5.9.7的安装及配置环境变量

    1 安装 Qt 5 9的安装跟以前的版本略有不同 选择组件时分成Qt 5 9和Tools 注意此时要勾选Qt 5 9下的MinGW 安装空间会一下增大4G左右 果断差评 不然后面通过QtCreator编译时无法添加选项 Tools下面也有一
  • AndroidKiller安装-配置-更新apktool

    下载安装好AndroidKiller后 需要对其进行配置以及更新apktool 接下来我就为大家讲解详细操作流程 1 选择配置选项 2 选择java然后配置好jdk的工程路径 切记要给到bin目录下才可以 如果是第一次打开并没有配置jdk目
  • Kamil and Making a Stream【Codeforces Round #588 (Div. 2) E】【dfs + map】

    Codeforces 1230 E 也没怎么读题 就看了下样例的note就知道了是对树上的直系祖先对子结点的链上gcd求和 然后就可以直接这样去跑一遍 个人比较的喜欢踩坑 有正着走的不走 偏偏选择了从根节点返回回来的答案 这样的做法虽然上是
  • 二叉树:链式存储结构基础操作(C语言)

    操作包含 1 二叉树的构造 先序序列和中序序列 中序序列和后序序列 2 利用三种遍历方式输出 先序遍历 中序遍历 后序遍历 层次遍历 每种遍历包含递归和非递归两种算法 3 栈和队列的构造 C 模板 均为顺序存储结构 main cpp 1 构
  • python爬取多个网页内容——招聘网站

    python爬虫思路 此次爬虫获取leipin网站上的招聘信息 liepin ningde 首先右击网页 检查 获取网页代码 点击网络 刷新网页 得到网页URL以及请求方法 首先在python环境中安装各种库 import requests
  • python如何解决js逆向混淆?

    JavaScript混淆是一种保护网站安全的技术 混淆可将代码进行多种变形和加密 使得 JavaScript 代码变得难以阅读和理解 逆向混淆是混淆中的一种方式 通过逆向混淆 混淆的代码更难被攻击者分析和了解混淆的含义 Python 是一种
  • morph 原理实现

    PE教学 超超超初心者向PE入门Part1 基本原理 2013 08 16 17 31 18 标签 mmd 教学 杂谈 分类 教学 应群里要求自己也写了一点比较浅显的PE入门教学 因为本人研究的并不深入 只是根据自己自学时的经验总结的比较基
  • keil 如何打开eeprom_如何在Keil中使RAM在带电复位时保持数据?

    最近关注的人比较多 非常感谢大家的认可 如何写点对大家有点借鉴作用的文章 也是我一直思考的问题 如果大家有什么想法 请留言或私信 谢谢 在 被Keil坑了一天 实在太意外了 用Keil的来瞅瞅看 中 提到了在使用Keil设置栈空间时可能存在
  • equals方法该怎么重写呢

    关于equals方法的重写 在编写代码的时候 我们总是会需要重写equals代码 因为equals代码没有重写的时候比较的是两个对象的内存地址 而两个代码的内存地址不同 答案肯定返回false 这并不是我们希望看到的 因此要重写equals
  • Java回调函数详解

    什么是回调函数 CallBack 在编写程序时 有时候会调用许多API中实现实现的函数 但某些方法需要我们传入一个方法 以便在需要的时候调用我们传入进去的函数 这个被传入的函数称为回调函数 Callback function 打个比方 有一
  • Visual Studio Code 配置java开发环境

    最近在学习算法 有时需要在自己的机器上调试一下代码 有些算法题目的题解是用java编的 因为这类代码只是单个的java文件 所以不想动用MyEclipse那样的重型工具 正好机器上有一个轻量级的VS Code 我就试着在上面搭了一个java