VS Code中的JDK设置

在VS Code使用中,如果机器只安装了一个版本的JDK版本,一般不需要特别关注JDK 的配置,但是在以下状况下,需要对JDK进行特别的配置:

  1. 机器有多个JDK版本,不同的项目使用不同的JDK版本
  2. 项目使用的JDK版本较低,而VS Code中Java开发需要使用1.8之上的版本,否则某些VS Code的功能不能work。
    由此就需要对JDK进行配置, 而VS 配置JDK的地方也有多处。

配置 Java Language Server 的JDK

Java Language Server 是什么?

VS Code的Java Language Server是一个用于提供Java语言支持的工具。它可以在VS Code中提供代码补全、错误检查、重构等功能,提高Java开发的效率和质量。它是基于Language Server Protocol(LSP)开发的,通过与VS Code的语言客户端进行通信来实现各种功能。Java Language Server可以与不同的Java编译器(如Eclipse JDT、Java编译器API)进行集成,从而使其能够对Java代码进行分析和处理。通过安装Java插件并配置Java Language Server,开发者可以在VS Code中进行Java开发,并享受到类似于Eclipse或IntelliJ IDEA等集成开发环境的功能。

如何配置呢?

配置 Java Language Server的步骤

配置步骤:

  1. File > Preferences > Settings

  2. 输入Java:Home 进行查询
    在这里插入图片描述

  3. 点击 “Edit in settings.json”

  4. 在“java.jdt.ls.java.home” 后面输入JDK的路径
    在这里插入图片描述

完整的设置步骤如下所示:
在这里插入图片描述

java.jdt.ls.java.home 配置项说明

那么 java.jdt.ls.java.home 这个配置参数究竟是什么意思呢?

  • jdt是 Java Development Tools 的简写。 Java Development Tools(JDT)是一组用于开发Java应用程序的工具,包括编译器、调试器、代码分析器等。在 VS Code 中,Java Language Server 使用 JDT 提供 Java 相关的功能和工具。
  • ls是 Language Server 的简写。 Language Server 是一种用于提供语言相关功能的独立进程或服务器,它可以为编辑器和集成开发环境(IDE)提供代码补全、语法检查、格式化等功能。对于 Java 开发,Java Language Server (jdt.ls) 就是一种特定的 Language Server,它提供了与 Java 相关的代码编辑和开发功能。因此,lsjava.jdt.ls.java.home中表示了 Language Server。

通过设置java.jdt.ls.java.home,告诉Java Language Server在哪里找到JDK。

配置java.jdt.ls.java.home时,需要提供JDK的安装路径。例如,在Windows上,可以使用类似以下的路径:C:\Program Files\Java\jdk-11.0.12;在Mac上,可以使用类似以下的路径:/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home

确保在设置java.jdt.ls.java.home时使用正确的JDK安装路径。配置正确后,Java Language Server就能够正常运行,并提供Java相关的功能和工具。

注意:如果没有配置java.jdt.ls.java.home,Java插件将尝试自动检测JDK的安装路径。如果自动检测失败,可能会遇到一些问题,例如无法运行Java文件或缺少某些功能。因此,建议在使用Java插件之前,先配置好java.jdt.ls.java.home,确保JDK的正确路径被指定。

配置Java项目使用的JDK版本

在 VS Code 中,java.configuration.runtimes 用于配置和指定要在 Java 项目中使用的 Java 运行时环境。以下是配置和使用的步骤:

  1. 打开 VS Code,并在 Java 项目中打开 settings.json 文件。可以通过 File -> Preferences -> Settings 或者使用快捷键 Ctrl + , 打开设置页面。

  2. 在设置页面中,搜索框中输入 java.configuration.runtimes,然后点击 Edit in settings.json 链接,进入 settings.json 文件。
    在这里插入图片描述

  3. settings.json 文件中,找到 "java.configuration.runtimes" 配置项,如果没有该配置项,可以手动添加。该配置项是一个 JSON 数组,用于指定要使用的不同的 Java 运行时。

  4. 针对每个需要配置的 Java 运行时,添加一个 JSON 对象,包含以下属性:

    • "name": 设定运行时的名称。
    • "path": 指定 Java 运行时的安装路径(Java Home)。
    • "default": 可选属性,将某个 Java 运行时设为默认运行时,设置为 true

    一个示例配置如下:

    "java.configuration.runtimes": [
        {
            "name": "Java SE 11",
            "path": "/path/to/jdk-11",
            "default": true
        },
        {
            "name": "Java SE 8",
            "path": "/path/to/jdk-8"
        }
    ]
    
  5. 保存 settings.json 文件。

配置完成后,VS Code 将会使用指定的 Java 运行时环境来运行和调试 Java 项目。可以在项目中使用 java.project.referencedLibraries 配置项来指定项目的依赖库。

java.configuration.runtimes 和 java.jdt.ls.java.home的比较

  • java.configuration.runtimes:这是一个在VS Code中配置Java运行时环境的设置。它允许定义不同的Java运行时环境,例如多个JDK版本或不同的构建工具(如Maven或Gradle)。可以定义一个或多个运行时环境,并在不同的Java项目之间切换。这个设置是与VS Code的Java插件配合使用的。

  • java.jdt.ls.java.home:这是一个在VS Code中配置Java开发工具包(JDK)路径的设置。它定义了JDT Language Server使用的JDK的安装路径。JDT Language Server是VS Code的Java插件使用的Java代码分析和语言支持工具。这个设置用于指定JDT Language Server使用的JDK版本。

总结来说,java.configuration.runtimes 是用于在VS Code中配置Java运行时环境的设置,而 java.jdt.ls.java.home 则是用于指定VS Code的Java插件使用的JDT Language Server所需的JDK版本的设置。

配置项目的JDK

在VS Code中,使用快捷键Ctrl + Shift + P(Windows/Linux)或Cmd + Shift + P(Mac)打开命令面板。在命令面板中,输入并选择“Java: Configure Java Runtime”。然后,选择已安装的JDK版本。

在这里插入图片描述

对于普通Java项目,配置修改过后, 项目下的JRE 系统库的版本也就同步修改过来了。

在这里插入图片描述



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/388454.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C/C++】2024春晚刘谦春晚魔术步骤模拟+暴力破解

在这个特别的除夕夜,我们不仅享受了与家人的温馨团聚,还被电视机前的春节联欢晚会深深吸引。特别是,魔术师刘谦的精彩表演,为我们带来了一场视觉和心灵的盛宴。在我的博客“【C/C】2024春晚刘谦春晚魔术步骤模拟暴力破解”中&…

洛谷C++简单题小练习day12—寻找最小值小程序

day12--寻找最小值--2.16 习题概述 题目描述 给出 n 和 n 个整数 ai​,求这 n 个整数中最小值是什么。 输入格式 第一行输入一个正整数 n,表示数字个数。 第二行输入 n 个非负整数,表示 1,2…a1​,a2​…an​,以空格隔开。 …

leetcode:343.整数拆分

解题思路: 拆分的越多越好(暂且认为),尽可能拆成m个近似相等的数,会使得乘积最大 dp含义:将i进行拆分得到最大的积为dp[i] 递推公式:j x dp[i-j](固定j,只通过凑dp[i-j]进而实现所…

报警产生器

1.  实验任务 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止&…

SPI控制8_8点阵屏

协议与硬件概述 SPI SPI是串行外设接口(Serial Peripheral Interface)的缩写。是一种高速的(10Mbps)的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线。 引脚介绍 SCLK:…

2024年【安徽省安全员C证】考试题库及安徽省安全员C证免费试题

题库来源:安全生产模拟考试一点通公众号小程序 安徽省安全员C证考试题库根据新安徽省安全员C证考试大纲要求,安全生产模拟考试一点通将安徽省安全员C证模拟考试试题进行汇编,组成一套安徽省安全员C证全真模拟考试试题,学员可通过…

ChatGPT高效提问—prompt实践(教师助手)

ChatGPT高效提问—prompt实践(教师助手) 下面来看看ChatGPT在教育领域有什么用途。 首先设定ChatGPT的角色为高中教师助手。 输入prompt: ChatGPT输出: ​ 教师助手的角色已经设置完成。下面通过几种不同的情景演示如何使用。 1.1.1 制定…

专业130+总分420+厦门大学847信号与系统考研经验厦大信息系统与通信工程,真题,大纲,参考书。

今年很幸运被厦门大学录取,考研专业课847信号与系统130,数二130,总分420,回头看这将近一年的复习,还是有不少经验和大家分享,希望对大家复习有帮助。专业课: 厦门大学847信号与系统在全国各高校…

comfyui换脸学习笔记

目录 Portrait Maker ComfyUI_Lam 人脸融合方案: 圣诞写真工作流 IPadapter faceID/faceID plus/faceID plusV2/Reactor换脸效果对比来 Portrait Maker 核心用的是 EasyPhoto ComfyUI_Lam 人脸融合方案: demo效果还可以,真实效果不是很稳…

Linux操作系统基础(十四):集群服务器搭建

文章目录 集群服务器搭建 一、新增Linux服务器 1、克隆虚拟机 2、修改虚拟机的硬件配置 3、修改虚拟机的网络配置 二、关闭防火墙 1、关闭firewalld 2、关闭SElinux 三、修改主机名 四、修改hosts映射 五、SSH免密登录 六、时钟同步 七、远程文件拷贝 1、从本机拷…

网红铁头因涉黄经历遭全网封杀

关注卢松松,会经常给你分享一些我的经验和观点。 铁头根本没意识到自己是公众人物了。 知名网红“铁头惩恶扬善”帐号被全网封禁,原因是因为遭到别人举报,1月12日凌晨“铁头”在直播的时候呢,自爆其涉黄经历。 铁头居然自己在直…

二维数组及函数的非函数实现

2024年2月14日 1.请编程实现二维数组的杨慧三角 #include<stdio.h> #include<stdlib.h> #include<string.h> void Yanghui(int n,int (*p)[n]) {for(int i0;i<n;i){for(int j0;j<i;j){if(j0||ij){*(*(pi)j)1;}else{*(*(pi)j)*(*(pi-1)j-1)*(*(pi-1)j)…

HTML快速入门教程

HTML&#xff1a;超文本标记语言&#xff08;Hyper Text Markup Language&#xff09;&#xff0c;是通过标签的形式将内容组织起来然后共享到网络之上供其他电脑访问查看。 大家可以思考一下&#xff0c;怎么将自己电脑上的文件或图片共享给其他电脑&#xff1f; 这时候会说通…

计算机的历史以及原理

一、计算机发展历史 计算机的历史可以追溯到几个世纪前,但现代计算机的起源和发展主要经历了以下几个重要阶段: 1. 机械计算设备:早在17世纪,人们就开始尝试制造可以进行基本数学运算的设备。例如,法国哲学家兼数学家Blaise Pascal在1642年发明了Pascalene,这是一种用于…

洛谷_P1059 [NOIP2006 普及组] 明明的随机数_python写法

这道题的关键在于去重和排序&#xff0c;去重可以联想到集合&#xff0c;那排序直接使用sort方法。 n int(input()) data set(map(int,input().split( ))) data list(data) data.sort() print(len(data)) for i in data:print(i,end )

深度理解实分析:超越公式与算法的学习方法

在数学的学习旅程中&#xff0c;微积分和线性代数为许多学生提供了直观且具体的入门体验。它们通常依赖于明确的公式、算法以及解题步骤&#xff0c;而这些元素往往可以通过记忆和机械练习来掌握。然而&#xff0c;当我们迈入实分析的领域时&#xff0c;我们面临着一种全新的挑…

Nginx实战:日志按天分割

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、方式1&#xff1a;定时任务执行分割脚本 1.分割日志脚本 2.添加定时任务 二、方式2&#xff1a;logrotate配置分割 1.logrotate简单介绍 2.新增切割ngi…

steam搬砖项目赚钱吗?3年亲身经历告诉你真相

csgo饰品交易市场由来已久&#xff0c;且玩家众多&#xff0c;绝对蓝海。而steam搬砖项目就是基于csgo游戏的交易。在steam用美金买入道具、装备和饰品&#xff0c;然后搬砖到国内的网易buff售卖&#xff0c;从中赚取一定的差价和汇率差额。 steam搬砖怎么赚钱&#xff1f;在s…

shumei 滑块 qd参数仿写记录

在对qd参数进行仿写的过程中&#xff0c;由于缺失很多js的基础知识&#xff0c;导致进展一度非常的缓慢&#xff0c;并且不知道自己的方向是不是正确的方向。在不知道自己的方向是否正确的时候&#xff0c;这个时候自己的投入的努力都是畏首畏尾。大概是一种&#xff0c;不知道…

【网站项目】229企业员工薪酬关系系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…