随记:有关idea中jdk版本

第一个地方:这个可能就是你整个项目的jdk版本的使用,你改了这里大概率可以改了

第二个地方:

就是 有关maven项目的  pom文件

一开始我的第一地方用的是 17 但是这里用的是8 

但是运行的时候还是 17 

这里可能是 maven的 项目这个地方只是对打包用的jdk8吧

开发工具和构建工具的行为差异

  1. 开发工具优先性:通常开发工具(如 IntelliJ IDEA)在运行项目时可能会优先使用其项目设置中的 JDK 版本。在你的情况下,尽管项目结构中显示的是 JDK 17,但 pom 文件中指定的是 JDK 8。开发工具在运行项目时可能会依据自身的配置和优先级规则,选择使用项目结构中设置的 JDK 17 来执行项目。这是因为开发工具通常会根据项目的具体配置和环境变量来确定运行时的 JDK 版本,并且在运行过程中可能会覆盖构建工具(Maven)中的设置。
  2. 构建工具的作用范围:Maven 在构建项目时会根据 pom 文件中的配置进行编译、测试和打包等操作。然而,Maven 对 JDK 版本的设置主要影响构建过程,而不一定直接决定项目的运行时环境。在构建阶段,Maven 会根据 pom 文件中指定的 JDK 版本调用相应的编译器和工具来处理源代码,但在运行项目时,开发工具可能会有自己的运行时配置机制,这可能导致实际运行时使用的 JDK 版本与 Maven 构建时指定的版本不一致。

二、优先级判断

  1. 一般来说,开发工具的项目设置在运行项目时可能具有较高的优先级。这是因为开发工具直接控制项目的运行环境,并且会根据其自身的配置和用户设置来选择合适的 JDK 版本。然而,具体的优先级可能因开发工具的不同版本和配置而有所变化。
  2. 在构建过程中,Maven 的设置对于确保项目的正确构建和依赖管理非常重要。但在运行项目时,开发工具可能会根据其自身的逻辑和优先级来确定使用哪个 JDK 版本。

第三个地方:

这里的有什么用?

大概是在编译的时候 idea 指定的版本。

构建、执行、部署 > 编译器 > Java 编译器设置

一、编译源代码

  1. 生成字节码:Java 编译器将 Java 源代码转换为字节码,这是一种与平台无关的中间表示形式。字节码可以在任何安装了适当 Java 运行时环境(JRE)的平台上运行,实现了 “一次编写,到处运行” 的特性。例如,开发人员编写的 Java 类文件经过编译器处理后,生成的字节码可以在 Windows、Linux 和 macOS 等不同操作系统上执行,只要这些系统上安装了兼容的 JRE。
  2. 语法检查和错误报告:编译器在编译过程中会检查源代码的语法正确性。如果发现语法错误,编译器会报告错误信息,帮助开发人员快速定位和修复问题。例如,如果开发人员在代码中遗漏了分号、括号不匹配或者使用了未定义的变量,编译器会指出这些错误,以便开发人员进行修正。
  3. 类型检查和安全性保障:编译器会进行类型检查,确保在程序运行时不会出现类型不匹配的错误。这有助于提高程序的安全性和稳定性。例如,编译器会检查方法调用中参数的类型是否正确,以及变量的赋值是否符合其类型要求。如果发现类型不匹配的情况,编译器会发出错误提示,防止在运行时出现不可预测的错误。

二、优化和性能提升

  1. 代码优化:现代 Java 编译器通常会进行各种优化,以提高生成的字节码的性能。这些优化包括但不限于常量折叠、方法内联、循环优化等。例如,编译器可能会将一些常量表达式在编译时进行计算,并将结果直接嵌入到生成的字节码中,减少运行时的计算开销。方法内联可以将小的方法调用直接替换为方法体的代码,减少方法调用的开销。循环优化可以对循环结构进行分析和优化,提高循环的执行效率。
  2. 目标字节码版本控制:通过设置项目字节码版本和模块目标字节码版本,开发人员可以控制生成的字节码的版本,以适应不同的运行环境和需求。例如,如果项目需要在旧版本的 JRE 上运行,可以将字节码版本设置为较低的版本,以确保兼容性。同时,编译器也会根据目标字节码版本进行相应的优化和调整,以提高在特定版本 JRE 上的性能。

第四个地方:

这个可能是运行环境的配置jre java虚拟机的版本

构建、执行、部署 > 构建工具 > Maven > 运行程序设置中的 JRE 设置

  1. 虚拟机支持:JRE 包含了 Java 虚拟机(JVM),这是 Java 程序能够在不同操作系统上运行的关键。JVM 负责将 Java 字节码转换为特定操作系统和硬件平台能够理解的机器指令,并执行这些指令。不同的操作系统有不同版本的 JVM,但 Java 程序可以在任何安装了适当 JRE 的平台上运行,而无需进行修改。例如,一个在 Windows 上开发的 Java 项目,可以在 Linux 或 macOS 等其他操作系统上运行,只要这些系统上安装了兼容的 JRE。
  2. 核心类库:JRE 还提供了大量的核心类库,这些类库包含了 Java 程序运行所需的基本功能,如输入输出处理、网络通信、图形用户界面、日期和时间处理等。开发人员在编写 Java 程序时,可以直接使用这些类库中的类和方法,而无需从头开始实现所有的功能。例如,当开发一个网络应用程序时,可以使用 JRE 中的java.net包来实现网络通信功能。

还有一个地方:

就是maven的settings.xml 里面也有java版本的指定,这个就不知道哪个优先级更高了,但是我变了几次都是在第一个地方改了,就改了。

最后总的来说就是,

把这几个地方都改成一样的应该就不会有什么问题,要是改了没用,可能就是有缓存,重启一下。本着也是记录一下这几个可以改的地方。不用每次都去查其他的了。

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

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

相关文章

Unity导入.FBX模型设置

** Unity导入.FBX模型设置 ** 第一步、导入.fbx模型 Assets- Import New Asset 第二步、设置 Animation Type 为Legacy 这里导入的是非人形模型设置为Lagacy None:不导入动画Animation Clip Legacy:用于早期动画设置,其不支持状态机A…

WebSocket状态码及异常报错1006

文章目录 1.WebSocket协议简介2.WebSocket状态码的作用:3.WebSocket状态码1006详解1.问题原因2.解决方案 1.WebSocket协议简介 WebSocket协议是一种基于TCP的协议,它通过在浏览器和服务器之间建立一条持久的双向通信通道,实现了实时的数据传…

Web,RESTful API 在微服务中的作用是什么?

大家好,我是锋哥。今天分享关于【Web,RESTful API 在微服务中的作用是什么?】面试题?希望对大家有帮助; Web,RESTful API 在微服务中的作用是什么? 在微服务架构中,Web 和 RESTful …

NVIDIA 发布适用于网络安全的 NIM Blueprint

德勤使用适用于容器安全的 NVIDIA NIM Agent Blueprint 帮助企业利用开源软件构建安全的 AI。 文章目录 🙊 德勤使用 NVIDIA AI 保障软件安全🙊 通过生成式 AI 保障软件安全🙊 适用于网络安全成功的蓝图🎠 什么是 NVIDIA NIM Agen…

javaWeb项目-ssm+jsp高校毕业生就业满意度调查统计系统功能介绍

本项目源码(点击下方链接下载):java-ssmjsp毕业生就业满意度调查系统实现源码(项目源码-说明文档)资源-CSDN文库 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端&…

Java使用原生HttpURLConnection实现发送HTTP请求

Java 实现发送 HTTP 请求,系列文章: 《Java使用原生HttpURLConnection实现发送HTTP请求》 《Java使用HttpClient5实现发送HTTP请求》 《SpringBoot使用RestTemplate实现发送HTTP请求》 1、HttpURLConnection 类的介绍 HttpURLConnection 是 Java 提供的…

字幕怎么自动生成?教你5种视频加字幕方法

在这个短视频时代,视频内容已成为传播信息、娱乐大众的重要载体。而字幕作为视频不可或缺的一部分,不仅能够提升观众的观看体验,还能跨越语言障碍,让所有观众都能享受视频的魅力。但怎么给视频加上字幕呢?下面给大家分…

图像及视频的基本操作

文章目录 一、认识计算机中的图像二、图像数据的读取三、数据读取-视频四、图像的其他操作 一、认识计算机中的图像 一张彩色图片是由很多个像素点组合而成的,而一个像素点是由R G B三个通道组成。RGB代表红色(Red)、绿色(Green&a…

Linux系统基础-文件系统

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Linux系统基础-文件系统 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. 回顾C语言…

RabbitMQ进阶_可靠性

文章目录 一、 发送者的可靠性1.1、 生产者重试机制1.2、 生产者确认机制1.2.1、确认机制理论1.2.2、确认机制实现1.2.2.1、定义ReturnCallback1.2.2.2、定义ConfirmCallback 二、 MQ的可靠性2.1、 数据持久化2.1.1、 交换机持久化2.1.2、 队列持久化2.1.3、 消息持久化 2.2、 …

R语言机器学习算法实战系列(四)随机森林算法+SHAP值 (Random Forest)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍教程下载数据加载R包导入数据数据预处理数据描述特征选择数据切割调节参数构建模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve特征的重要性模型解释保…

C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…

MinIO快速入门:开启你的文件存储之旅

在现代应用中,文件存储服务是至关重要的组件之一。像腾讯云的COS(对象存储服务)等云存储服务提供了丰富的功能,但随之而来的云端费用也是开发者无法忽视的问题。本文将介绍一款开源、高性能的对象存储服务——MinIO,它…

【含开题报告+文档+PPT+源码】基于SSM框架的诗词吟诵知识学习系统的设计与实现

开题报告 随着信息技术的迅猛发展和互联网的普及,在线教育逐渐成为现代教育的重要形式。在线学习平台以其便捷性、灵活性和个性化等特点,受到广大师生的青睐。特别是在线吟诵知识学习,已经成为许多学生提升自我修养、陶冶情操的重要途径。青…

基于华为云CodeArts Repo和流水线门禁的分支合并与部署

本文分享自华为云社区《【开发者空间实践】基于Repo和流水线门禁的分支合并与部署-云社区-华为云》 一、案例介绍 流水线(CodeArts Pipeline)提供可视化、可编排的CI/CD持续交付软件生产线,帮助企业快速转型,实现DevOps持续交付高…

FastApi SQLAlchemy SQLite

FastApi fastapi是一个用于构建API 的现代、快速(高性能)的web框架,它是建立在Starlette和Pydantic基础上的。 Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库,Starlette是一种轻量级的ASGI框架/工具包&…

Qt编写的modbus模拟器/支持网络和串口以及websocket/支持网络rtu

一、使用说明 1.1 设备模拟-Com 第一步,填写要模拟的设备地址,0表示自动处理,也就是收到什么地址就应答什么地址。第二步,填写对应的串口号和波特率。第三步,单击打开串口,成功后会变成关闭串口字样。单击…

智慧公厕厂家:智慧公厕建设推动城市公厕智能化变革

随着科技的不断进步,智慧公厕厂家正以创新之力推动着城市公厕的智能化变革。 一、提升用户体验 智慧公厕为使用者带来了前所未有的便利。通过实时显示厕位使用情况,避免了旅客的无效排队,节省了时间。感应式设备如水龙头、洗手液等&#xff…

工业数据采集网关如何与设备进行连接?天拓四方

在工业自动化与智能化日益普及的今天,工业数据采集网关成为了连接各种工业设备与数据中心的桥梁。 一、工业数据采集网关的作用 工业数据采集网关,作为工业自动化系统的核心组成部分,负责实时采集、处理和传输来自各种工业设备的数据。它能…

RS232和RS485

文章目录 RS232和RS485编程与UART一摸一样RS232RS485 前情提要:UART的缺点 电气接口不统一 UART只是对信号的时序进行了定义,而未定义接口的电气特性 电压电平不兼容 UART通信中通常使用处理器的电平(如TTL电平),但不…