Jdk配置、maven配置、gradle配置、Java开发常用的依赖库

一、配置JDK环境变量

1. 安装 JDK

首先确保已经安装了 JDK。如果还没有安装,可以从 Oracle 官网 或者 AdoptOpenJDK 下载并安装合适的 JDK 版本。

我建议下载这个:https://adoptium.net/zh-CN/temurin/releases/?os=windows&arch=x64&package=jdk&version=17

支持和维护它的厂商和组织:

https://adoptium.net/zh-CN/members/

使用 Temurin JDK 的最大优势在于它是 开源、免费且没有商业授权费用,并且提供与 Oracle JDK 相同的兼容性和性能。这使得 Temurin 成为一个更加经济、灵活和可持续的选择,尤其对于开源项目、小型开发团队和中小型企业来说,Temurin 是一个非常理想的替代方案。而 Oracle JDK 则适合那些需要 Oracle 提供正式商业支持和特定企业级服务的组织。

如果你不依赖于 Oracle 提供的企业级支持服务,Temurin 将会是一个更具性价比的选择。

2.Temurin JDK的说明

Temurin JDK(以前叫做 AdoptOpenJDK)完全可以用于大型企业。

Temurin JDK 是由 Eclipse Adoptium 项目提供的开源 Java 发行版,经过严格测试和验证,广泛应用于企业环境中。它是一个兼容的、企业级的 JDK 发行版,完全符合 Java SE 标准,并且在性能、安全性和可靠性上都有较好的表现。

许多大型企业使用 Temurin JDK 作为生产环境中的 Java 运行时,因为它:

  1. 稳定可靠:Temurin JDK 经过严格的测试,符合 Java 标准,保证了兼容性和稳定性。
  2. 开源:可以自由使用、分发和修改,无需支付许可费用,符合很多企业的开源使用政策。
  3. 长期支持:Temurin JDK 提供长期支持版本(LTS),确保企业能够获得长期的安全更新和性能优化。
  4. 广泛社区支持:作为 Eclipse Adoptium 项目的核心部分,Temurin JDK 享有来自全球开发者社区的支持和更新。
  5. 兼容性强:Temurin JDK 兼容其他 JDK 发行版,如 Oracle JDK 和 OpenJDK,因此可以与现有的 Java 应用程序无缝集成。

对于大多数企业来说,选择 Temurin JDK 是一个既经济又安全的解决方案,尤其适用于生产环境中的大规模部署。如果你的企业有需要,也可以考虑与 Eclipse Adoptium 项目中的专业支持团队合作,以获得更多技术帮助和支持。

3. 配置环境变量

配置 JDK 环境变量主要有两个:JAVA_HOMEPath

步骤 1:设置 JAVA_HOME
  1. 右键点击 此电脑(或 计算机),选择 属性
  2. 点击 高级系统设置,然后点击 环境变量
  3. 在 系统变量 区域,点击 新建,创建一个新的变量:
    • 变量名:JAVA_HOME
    • 变量值:JDK 的安装路径。例如,C:\Program Files\Java\jdk-17(根据实际安装路径填写)。
  4. 点击 确定 保存。
步骤 2:修改 Path 变量
  1. 在 系统变量 区域,找到 Path 变量,选中后点击 编辑
  2. 在编辑窗口中点击 新建,然后添加以下路径:
    • %JAVA_HOME%\bin
  3. 点击 确定 保存。
步骤 3:配置 CLASSPATH(可选)
  1. 在 系统变量 区域,点击 新建,创建一个新的变量:
    • 变量名:CLASSPATH
    • 变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
  2. 点击 确定 保存。
  • 需要配置 CLASSPATH :
    • 你有自定义的类文件或 JAR 文件不在默认类路径中。
    • 你的项目需要依赖多个外部库(JAR 文件)。
  • 不需要配置 CLASSPATH :
    • 你只是运行简单的 Java 程序,且类文件在当前目录。
    • 使用现代 IDE (如 IntelliJ IDEA)进行开发,它们会自动管理 CLASSPATH

3. 验证配置

完成配置后,打开命令提示符(CMD),输入以下命令来验证 JDK 是否配置成功:

java -version

如果显示出 JDK 版本信息,说明配置成功。

二、Maven与Gradle的配置:

打开 maven 的配置文件( windows 机器一般在 maven 安装目录的 conf/settings.xml )

1.maven 配置指南

添加本地仓库地址:

<localRepository>D:\m2\repository</localRepository>

<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>

在 build.gradle 文件中加入以下代码:

2.gradle 配置指南

repositories {mavenLocal {url 'file:///D:/m2/repository'}maven { url 'https://maven.aliyun.com/repository/public/' }mavenCentral()
}

三、Java开发常用的依赖库:

在Java开发中,常用的依赖库主要涵盖了常见的功能需求,比如数据访问、Web开发、单元测试、日志管理、工具类等。以下是一些在Java开发中使用频繁的依赖:

1. Spring Framework相关依赖

  • Spring Corespring-core
  • Spring Webspring-webspring-webmvc
  • Spring Bootspring-boot-starter-web(Web开发),spring-boot-starter-data-jpa(JPA支持),spring-boot-starter-thymeleaf(模板引擎)
  • Spring Data JPAspring-data-jpa
  • Spring Securityspring-security-core
  • Spring AOPspring-aop

2. 数据库及ORM框架相关依赖

  • Hibernatehibernate-core
  • Spring Data MongoDBspring-boot-starter-data-mongodb
  • MyBatismybatis-springmybatismybatis-spring-boot-starter
  • JDBCspring-boot-starter-jdbc
  • JPA(Java Persistence API):javax.persistence-api

3. Web开发相关依赖

  • Spring Boot Web Starterspring-boot-starter-web
  • Spring MVCspring-webmvc
  • Thymeleaf(模板引擎):spring-boot-starter-thymeleaf
  • Spring WebFlux(响应式编程):spring-boot-starter-webflux
  • Jackson(JSON处理):jackson-databind
  • JSP支持spring-boot-starter-jetty(可选的Servlet容器)

4. 日志框架

  • SLF4Jslf4j-api
  • Logbacklogback-classic
  • Log4j2log4j2-apilog4j2-core
  • Spring Boot默认日志spring-boot-starter-logging(默认包含Logback)

5. 单元测试和Mock框架

  • JUnitjunit-jupiter-apijunit-jupiter-engine(JUnit 5)
  • Mockitomockito-core
  • Spring Testspring-boot-starter-test
  • AssertJassertj-core(更强大的断言库)
  • Hamcresthamcrest-library

6. 工具类库

  • Apache Commons
    • commons-lang3(字符串、集合等常用工具)
    • commons-io(文件操作)
    • commons-collections4(集合工具)
  • Guava(Google的工具类库):com.google.guava:guava
  • Lombok(减少样板代码):org.projectlombok:lombok
  • Apache HttpClienthttpclient

7. 消息队列/异步处理

  • RabbitMQspring-boot-starter-amqp
  • Kafkaspring-kafka
  • ActiveMQspring-boot-starter-activemq

8. 分布式和微服务架构相关

  • Spring Cloud
    • spring-cloud-starter-netflix-eureka-client(Eureka客户端)
    • spring-cloud-starter-config(Spring Cloud配置管理)
    • spring-cloud-starter-openfeign(Feign客户端)
    • spring-cloud-starter-ribbon(Ribbon负载均衡)
  • Spring Cloud Gatewayspring-cloud-starter-gateway(API网关)
  • Spring Cloud Sleuthspring-cloud-starter-sleuth(分布式追踪)

9. 缓存相关依赖

  • Redisspring-boot-starter-data-redis
  • EhCachespring-boot-starter-cache
  • Caffeinecom.github.ben-manes.caffeine:caffeine(高效的内存缓存)

10. 异步任务和定时任务

  • Quartzquartz
  • Spring Taskspring-boot-starter-task(异步任务支持)

11. 文件上传和处理

  • Apache Commons FileUploadcommons-fileupload
  • Spring Boot文件上传spring-boot-starter-web(支持文件上传功能)

12. 认证与授权

  • OAuth2spring-security-oauth2-client
  • JWTjjwt-api(JWT处理)

13. API文档生成

  • Swaggerspringfox-swagger2springfox-swagger-ui
  • Springdoc OpenAPIspringdoc-openapi-ui(OpenAPI规范支持)

14. 其他常用工具和框架

  • Flywayflyway-core(数据库迁移)
  • Liquibaseliquibase-core(数据库变更管理)
  • Apache POIpoi-ooxml(处理Excel文件)
  • Jacksonjackson-databind(JSON处理)
  • Gsoncom.google.code.gson:gson(另一种JSON处理库)

15. 安全相关

  • Spring Securityspring-security-core
  • Apache Shiroshiro-core

这些依赖基本涵盖了大多数Java开发项目中需要用到的功能,可以根据项目的需求,选择并添加适合的依赖。随着Java生态的不断发展,新的库和工具不断涌现,因此要保持对新技术的关注,选择最适合项目需求的技术栈。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【AI系统】FBNet 系列

FBNet 系列 本文主要介绍 FBNet 系列&#xff0c;在这一章会给大家带来三种版本的 FBNet 网络&#xff0c;从基本 NAS 搜索方法开始&#xff0c;到 v3 版本的独特方法。在本节中读者会了解到如何用 NAS 搜索出最好的网络和训练参数。 FBNet V1 模型 FBNetV1:完全基于 NAS 搜…

二十三、Linux可视管理之webmin和bt运维工具

1、webmin 基本介绍 Webmin 是功能强大的基于 Web 的 Unix/linux 系统管理工具。管理员通过浏览器访问 Webmin 的各种管理功能并完成相应的管理操作。除了各版本的 linux 以外还可用于&#xff1a;AIX、HPUX、Solaris、Unixware、Irix 和 FreeBSD 等系统安装webmin&配置 …

聚合支付系统/官方个人免签系统/三方支付系统稳定安全高并发 附教程

聚合支付系统/官方个人免签系统/三方支付系统稳定安全高并发 附教程 系统采用FastAdmin框架独立全新开发&#xff0c;安全稳定,系统支持代理、商户、码商等业务逻辑。 针对最近一些JD&#xff0c;TB等业务定制&#xff0c;子账号业务逻辑API 非常详细&#xff0c;方便内置…

Transformer真的是机器人技术的基础吗?

生成式预训练Transformer&#xff08;GPT&#xff09;被吹捧为将彻底改变机器人技术。但实际应用中&#xff0c;GPT需要庞大且昂贵的计算资源、冗长的训练时间以及&#xff08;通常&#xff09;非机载无线控制&#xff0c;诸多限制之下&#xff0c;GPT技术真的实用吗&#xff1…

使用脚本语言实现Lumerical官方案例——闪耀光栅(Blazed grating)(纯代码)(2)

接《使用脚本语言实现Lumerical官方案例——闪耀光栅(Blazed grating)(纯代码)(1)》 一、添加分析组 1.1 代码实现 #添加分析组 addanalysisgroup(); set("name", "grating_R"); set("x", 0); set("y", 2.5*um); addanalysisgrou…

【Java】异常处理见解,了解,进阶到熟练掌握

各位看官早安午安晚安呀 如果您觉得这篇文章对您有帮助的话 欢迎您一键三连&#xff0c;小编尽全力做到更好 欢迎您分享给更多人哦 大家好我们今天来学习Java面向对象的的抽象类和接口&#xff0c;我们大家庭已经来啦~ 目录 1.(throws和throw&#xff09;我们不管这个异常&…

Oracle数据库 用户管理模式下的冷备份与热备份

1. 用户管理模式下的冷备份 1.1. 通过数据库相关视图查询 查实例 select instance_name,version,status,archiver,database_status from v$instance; 查数据库 select dbid,name,log_mode from v$database; 查数据文件状态 select file_name,tablespace_name,status,o…

Solon 3.0.4 发布(Spring 的替代方案,备胎计划)

Solon 框架&#xff01; 面向全场景的 Java 应用开发框架。从零开始构建&#xff08;非 java-ee 架构&#xff09;&#xff0c;有灵活的接口规范与开放生态。新一代 Java 应用软件的生态基座。开放原子开源基金会&#xff0c;孵化项目。 追求&#xff1a; 更快、更小、更简单…

严格单元测试造就安全软件

在信息技术迅速发展的今天&#xff0c;软件在各个行业中扮演着至关重要的角色&#xff0c;尤其是在汽车行业&#xff0c;其中软件的可靠性和安全性直接影响到人们的生命安全。软件缺陷所带来的潜在风险不容小觑&#xff0c;尤其在涉及到自动驾驶和车辆控制等关键系统时&#xf…

基于CALMET诊断模型的高时空分辨率精细化风场模拟技术应用

在研究流场时&#xff0c;常用观测、模型风洞测试和数值模拟方法进行研究。但时常遇到研究区气象站点分布稀疏&#xff0c;不能代表周边复杂地形的风场。风洞模拟需要对地形进行实景的微缩&#xff0c;但实际过程中可能更关心近地表边界层的风场。风洞模拟一方面费用较高&#…

手写签名OCR识别-提升文档处理效率

随着数字化办公和智能化管理的普及&#xff0c;企业在日常业务中处理的各类单据和文件数量与日俱增。这些文件不仅包括了繁琐的文字信息&#xff0c;还涉及到重要的签名和印章等手写元素。尤其是在合同、协议、发票、审批单等文档中&#xff0c;手写签名不仅是身份确认的重要标…

Flutter:webview打开网页

官方文档地址 下方代码来自官方文档&#xff0c;先简单记录下如何通过webview打开某个http地址 添加权限&#xff1a;android/app/src/main/AndroidManifest.xml <uses-permission android:name"android.permission.INTERNET"/>pubspec.yaml webview_flutter: …

WPF+LibVLC开发播放器-音量控制和倍速控制

界面 界面上增加音量的控件和倍速控制控件 音量控制 主要也是一个Slider进度条控件来实现音量调节 我们这里设置默认的最大值为100&#xff0c;默认Value值也为100&#xff0c;默认声音开到最大 这里目前完全由前端控制音量调节&#xff0c;可以直接使用ValueChanged事件实…

重生之我在异世界学编程之C语言:初识一维和二维数组篇

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文数组的基本类型&#xff1a;一维…

Ubuntu 新加硬盤分區

1. 查看系統是否識別新的硬盤 lsblk 假設硬盤的名字為&#xff1a;sudo fdisk /dev/sda 注意硬盤類型為gpt&#xff0c;大小沒有限制 2. 硬盤分區 sudo fdisk /dev/sda 根據提示&#xff1a; n 新加分區&#xff0c;設置分區大小。 p 查看分區情況以及大小 d: 刪除也…

openGauss开源数据库实战十六

文章目录 任务十六 openGauss逻辑结构:触发器管理任务目标实施步骤一、测试openGauss的触发器1.创建测试表2.创建触发器对应的函数3.创建触发器4.测试触发器 二、触发器的类型1.行级触发器2.语句级触发器3.AFTER触发器和 BEFORE触发器 任务十六 openGauss逻辑结构:触发器管理 …

键值对形式读取值

效果 学习啦&#xff01; 异步请求数据方法&#xff1a; ①async/await <script setup> import { nextTick, onMounted } from vuelet Info {}const loadData async () > {try {const response await fetch(/json/info.json)const data await response.json()data…

Java面向对像编程OOP

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 OOP总结&#xff1a; 类和对象的说明Java中有无static修饰的方法的使用区别&#xff1a;✅️有stat…

【MARL】MAT论文阅读笔记

文章目录 前言一、如何产生这个想法(TRPO -> ) PPO -> MAPPO -> HAPPO -> MAT 二、多智能体优势值分解定理三、transformer 在MAT的应用四、伪代码简述五、实验效果 前言 正好有节课让我们调研最新的自己的方向的新论文&#xff0c;找到一篇自己觉得比较可行&…

深度学习模型——双塔模型(Two-Tower Model)详解

双塔模型是一种高效、灵活的深度学习模型结构&#xff0c;广泛用于推荐系统和信息检索等场景中。其核心思想是分别为两个实体&#xff08;如用户和物品、查询和文档&#xff09;构建独立的特征表示网络&#xff08;两座塔&#xff09;&#xff0c;并在共享语义空间中通过相似性…