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开发环境 的相关文章

  • Flowable工作流引擎的使用2(BPMN结构及节点介绍)

    Flowable工作流引擎的使用 2BPMN结构介绍 上一篇讲到了flowable如何使用 用了一个简单的demo 演示了一下流程的创建 发起 审核 查询等功能 内容不多但是引申出很多的概念 BPMN deployId processId
  • 漫谈硬编码

    一 什么是硬编码 在计算机程序或文本编辑中 硬编码是指将可变变量用一个固定值来代替的方法 例如 以C 为例 char szText 100 code for int i 0 i lt 100 i code 上述语句使用固定值100限定了循环
  • idea中git的简单使用及git分支

    这篇文章简单介绍了git 着重介绍了分支概念和idea中git的简单使用 提问题 git是啥 git的分支概念 idea中git的使用 git仓库 git命令 git安装 参考文章 git是个啥 分布式版本管理工具 git的前生今世 git
  • java转go语言,值得转吗?

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

    Map在vue中的使用方法 html 遍历的时候要遍历两遍
  • 到底是学JAVA好还是.net,未来哪个前景好?

    Java就目前来看 前景绝对没有问题 从语言排行榜来看 Java从未跌出前3 Java目前主要占据两个领域 服务端开发 以及安卓开发 尤其是在安卓开发领域 绝对是牢牢地霸占第一的位置 首先java有着非常广泛的市场应用 WEB开发 安卓应用
  • 数组的添加和删除过滤方法总结es6 filter()

    es6 filter 数组过滤方法总结 Array every x gt x 是每一个都要满足 Array some x gt x 是有一个满足 Array find findIndex 返回符合条件的第一个值 Array filter 过
  • C#进行图片压缩(对jpg压缩效果最好)

    直接上代码 1 public static class ImageCompress 2 3
  • 什么是区块链----概念

    前言 从2016年年初开始 区块链这个概念越来越热越来越火 有人说他可以颠覆金融行业 也有人觉得这就是个噱头 这个2016火起来的技术其实早在2008年 比特币的诞生就基于区块链 技术火归火 落地的应用却没有那么多 周围的朋友同学都听说过这
  • 请使用mysql连接池

    在初次使用 python 的 pymysql工具包连接 mysql数据库 的时候 总是发生数据库连接失败的情况发生 经过多方确认 发现这种情况不是自己的连接方式错了 而是mysql数据库服务器因为网络出现闪断 导致在查询的时候发生连接出错的
  • JAVA之初识springMVC框架

    1 环境 操作系统 Mac OS 10 12 6 Tomcat v7 0 JDK 1 7 工具 eclipse 2 新建项目 用eclipse新建项目 选择Dynamic Web Project 将项目字符集改为UTF 8 3 编辑web
  • 为你推荐10款开发常用的代码编辑器

    代码编辑器对于程序员来说十分重要 一个好的编辑器可以节省开发时间 提高工作效率 这篇文章会介绍10个优秀且免费的编辑器 它们都是非常方便易用的环境 你可以用它们来编写代码 查看源文件和文档等 简化你的工作 本文由PHP100中文网编译 转载
  • 三招搞定你的ubuntu安全问题

    本篇主要介绍以下三个部分 反病毒引擎clamav的安装和使用 ubuntu ufw限制访问地址 ubuntu用户连接失败锁定指定时间 反病毒引擎clamav的安装和使用 简介 ClamAV是一款开源的反病毒引擎 用于检测病毒 特洛伊木马 恶
  • 区块链三加一:深度论区块链的联盟链意义与作用

    随着区块链技术的发展 越来越受个人及企业的关注 而和区块链联系最为紧密的 恐怕就是金融行业了 然而虽然区块链大受热捧 但毕竟区块链是属于公有区块链 公有区块链有着其不可编辑 不可篡改的特点 这就使得公有链并不适合企业使用了 毕竟如果某金融企
  • .net IOC之Spring.Net

    一 开发环境 编译器 VS2013 Net版本 net framework4 5 二 涉及程序集 Spring Core dll 1 3 Common Logging 三 开发过程 1 项目结构 2 添加Person cs namespac
  • Nginx日志常见时间变量解析

    request time 官方解释 request processing time in seconds with a milliseconds resolution time elapsed between the first bytes
  • Docker-swarm 介绍,集群,多服务部署实战

    一 什么是Docker Swarm Swarm是Docker公司推出的用来管理docker集群的平台 几乎全部用GO语言来完成的开发的 代码开源在https github com docker swarm 它是将一群Docker宿主机变成一
  • java入门的第一个程序代码 hello world

    很多人说 学Java真的很难 其实 这是真的 但是高薪之所以为高薪 就是因为它比普通的活难的多 今天是我第一篇的博客 我还是想鼓励想学java技术的小伙伴一起来学 很多事只有去做了 你才能知道自己能不能成功 好了 接下来看Java入门的第一
  • XSS & SQL injection

    作者 CyberPhreak XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X Web Security XSS more X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 介绍在这篇文章中我将说明所有关于X
  • 对技术行业的深度思考

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

随机推荐

  • 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