当前位置: 首页 > news >正文

第一章 第一节 windows系统Java 环境安装(含JDK多版本切换方案)

系列文章目录

  • 第一章 第一节 windows系统Java 环境安装(含JDK多版本切换方案)

文章目录

  • 系列文章目录
  • 前言
  • 一、问题集合
  • 二、安装Java环境
    • 1.了解Java的安装方式
    • 2.使用Scoop安装
      • a.安装scoop
      • b.使用scoop安装Java
  • 三、遇到问题
  • 四、我的回答
  • 引用参考
  • 附录
    • Java发展史
      • 1. 起源与诞生(1991-1995)
      • 2. 早期发展(1996-2000)
      • 3. 成熟与普及(2000-2009)
      • 4. Oracle时代与版本迭代(2010-2024)
        • 关键版本发布
        • 版本分类
      • 5. 技术与生态演变
      • 6. 争议与挑战
      • 7. 现代Java的定位
      • 总结

前言

授人以鱼不如授人以渔,给我买手枪腿不如教我赚钱。

今天学习Java环境安装。
立一个规矩,开局提出几个问题自行查询答案,下一期我给出我找的答案。


一、问题集合

  • Java长期支持的版本有哪些?
  • Java SE,Java EE,Java ME是什么意思?
  • 什么是OpenJDK,Oracle JDK,OpenJDK发行版本?
  • 什么是环境变量?
  • JDK 和 JRE 是什么,需要配置jre的环境变量吗?

最后了解Java的发展史,结合上述几个问题进行串联后再思考。

二、安装Java环境

1.了解Java的安装方式

据我了解,在windows上安装Java环境有以下几种方法:

  • 安装程序安装(运行exe文件根据向导安装)
  • 压缩包解压安装
  • 使用Scoop安装

提示:这里我们直接用scoop安装管理Java环境,其他两种方式,可以搜索Java安装和Java压缩包安装搜索相关文章进行学习。

2.使用Scoop安装

我们首先需要了解一下Scoop,Scoop 是 Windows 系统下的命令行包管理工具,用于通过终端快速安装、管理软件和依赖项。它类似于 Linux 的 apt 或 yum,以及 macOS 的 Homebrew,但专为 Windows 优化。
提示:如果看不懂,你可以简单的理解它是一个用于下载管理软件的程序(在终端使用)

a.安装scoop

打开Windows PowerShell(右键点击开始菜单)。

# 脚本执行策略更改,默认自动同意Set-ExecutionPolicyRemoteSigned-scope CurrentUser-Force# 该镜像会会支持到8月27,还要4个月。之后可以找其他的。【引用参考[1]感谢分享】# 执行安装命令(默认安装在用户目录下,如需更改请执行“自定义安装目录”命令)# 可能出现报错找不到Microsoft.PowerShell.Archive,下载即可。【可以查看问题记录】iwr-useb scoop.201704.xyz|iex# 如图报错可以运行Install-Module-Name Microsoft.PowerShell.Archive-Force# 安装成功后,先换一下源,更换scoop的repo地址scoop config SCOOP_REPO"https://gitee.com/scoop-installer/scoop"# 安装一下git,必装git,scoop及bucket更新均依赖此软件scoop install git


b.使用scoop安装Java

# 添加java的bucketscoop bucket add java# 搜索一些openjdkscoop search openjdk# 我这边选择安装8、11、17scoop install openjdk8-redhat scoop install openjdk11 scoop install openjdk17# 每次安装后可以查看java版本# 需要注意的是这里使用的powershell,如果使用cmd时,可能需要关闭cmd重开后,环境变量才会生效,有点像运行cmd的时候锁定了环境变量java-version# 安装后,想要切换环境,我们用下面的指令scoop reset openjdk8-redhat scoop reset openjdk11 scoop reset openjdk17# scoop在install和reset指令执行对应的openjdk的下载和切换时,会将JAVA_HOME设置要切换的版本,并将添加或提到最上方bin目录到Path中





三、遇到问题


四、我的回答

有问题望您指出

  • Java长期支持的版本有哪些?

Java 8 、Java 11、Java 17、Java 21

  • Java SE,Java EE,Java ME是什么意思?

Java SE 就像 基础工具箱;Java EE 就像 高级工程团队;Java ME 就像 迷你工具包。

Jakarta EE 是一套基于组件-容器模型的企业级架构的实现,它通过标准化的 API 和模块化的设计,为企业级应用提供了完整的开发框架和运行环境。

  • 什么是OpenJDK,Oracle JDK,OpenJDK发行版本?

OpenJDK(Open Java Development Kit) 是 Java 语言的开源实现,由 Sun Microsystems(现为 Oracle 旗下公司)于 2006年 发起,并于 2009年 正式发布。它是 Java Platform, Standard Edition (Java SE) 的官方参考实现,遵循 GPLv2 协议(带有链接例外条款),允许任何人自由使用、修改和分发其代码。

Oracle JDK(Oracle公司的商业JDK)基于OpenJDK构建,但包含一些闭源组件(如 Java Flight Recorder、Java Mission Control)。

OpenJDK发行版 是基于 OpenJDK开源代码 的不同厂商或社区提供的 具体实现版本。它们本质上是 OpenJDK的定制化、优化或封装版本,旨在满足不同场景、平台或用户需求。

  • 什么是环境变量?

环境变量是操作系统与应用程序之间的“配置桥梁”,通过定义路径、参数等信息,控制程序的运行环境和行为。合理设置环境变量可以简化开发流程、提升系统兼容性,并确保应用程序在不同环境中稳定运行。对于开发者,掌握环境变量的配置方法是基础技能之一。

上面肯定是搜索的,我自己的理解是,环境变量就像目录一样,告诉计算机哪里有可执行文件。也就是说,被配置到环境变量的路径下的可执行文件,可以被我在任意路径下,不告知执行文件路径直接访问。

  • JDK 和 JRE 是什么,需要配置jre的环境变量吗?

JDK(Java 开发工具包):
包含 JRE(Java 运行时环境)。
包含开发工具(如 javac、java、javadoc 等),用于编译、运行和调试 Java 程序。
适合开发者,用于编写、编译和测试 Java 应用程序。
JRE(Java 运行时环境):
是 Java 程序的运行环境,包含 JVM(Java 虚拟机)和核心类库(如 rt.jar)。
仅用于运行 Java 程序,不包含开发工具(如 javac)。
适合普通用户或应用程序,用于执行已编译的 .class 文件。

默认情况下,安装 JDK 时会自动安装 JRE,因此 JDK 的 bin 目录已经包含了 JRE 的运行时工具(如 java.exe)。
配置 PATH 时,只需添加 %JAVA_HOME%\bin,即可同时访问 javac(编译工具)和 java(运行工具),无需额外配置 %JAVA_HOME%\jre\bin


引用参考

[ 1 ] Scoop: scoop国内镜像优化库,能够加速scoop安装及bucket源文件,无需用户设置代理。内置加速站有调用次数限制,请勿提取滥用。 镜像频率:12小时。

[ 2 ] Scoop简易安装教程 - No卜 - 博客园

[ 3 ] 你需要掌握的Scoop技巧和知识 - 知乎

[ 4 ] 通过Scoop安装和切换Java(JDK)、Python、Ruby的版本

附录

Java发展史

以下是Java语言的发展史,结合知识库中的信息整理而成:

1. 起源与诞生(1991-1995)

  • 1991年
    • Sun公司启动“Green项目”(绿色计划),旨在开发一种可在多种电子产品上运行的程序架构。
    • 詹姆斯·高斯林(James Gosling)领导团队开始开发一种新语言,最初命名为Oak(橡树)。
  • 1995年
    • Oak更名为Java(因“Oak”已被注册,且Sun公司希望与“Java”(印度尼西亚的爪哇岛,咖啡产地)关联)。
    • Java 1.0正式发布,提出“Write Once, Run Anywhere”(一次编写,到处运行)的口号,成为Java跨平台特性的核心。

2. 早期发展(1996-2000)

  • 1996年
    • JDK 1.0发布,Java有了第一个正式的开发工具包(JDK),包含JVM、JRE和开发工具。
    • JSP 1.0Servlet技术推出,奠定Web开发基础。
    • 首届JavaOne开发者大会举办,吸引全球开发者关注。
  • 1997年
    • JDK 1.1发布,引入JDBC(数据库连接)、JavaBeans(组件化开发)、RMI(远程方法调用)等关键功能。
    • 支持内部类(Inner Class)和反射(Reflection)。
  • 1998年
    • J2EE 1.2(Java企业版前身)发布,支持企业级分布式应用。
  • 1999年
    • Java 2平台正式推出,分为三个版本:
      • J2SE(标准版,Standard Edition)
      • J2EE(企业版,Enterprise Edition)
      • J2ME(微型版,Micro Edition)。

3. 成熟与普及(2000-2009)

  • 2000-2004年
    • JDK 1.31.4发布,强化网络编程、国际化支持和性能优化。
    • 2004年
      • J2SE 5.0(即 JDK 1.5)发布,引入泛型注解增强for循环等重大语法改进,成为Java语言的里程碑。
  • 2005年
    • Java SE 6发布,版本命名去掉了“2”(如J2EE更名为JavaEE)。
    • JavaOne大会正式宣布Java开源计划。
  • 2006年
    • OpenJDK开源,Java技术成为免费资源,代码透明化。
  • 2009年
    • Oracle收购Sun公司,获得Java版权,Java进入Oracle时代。

4. Oracle时代与版本迭代(2010-2024)

关键版本发布
  • 2011年
    • Java SE 7发布,支持try-with-resources、钻石操作符(<>)等语法糖。
  • 2014年
    • Java SE 8发布,引入Lambda表达式Stream API默认方法,推动函数式编程。
    • 成为广泛使用的长期支持版本(LTS)
  • 2017年
    • Java SE 9发布,模块化系统(JPMS)引入,解决类库膨胀问题。
    • 发布周期改为每6个月一次
  • 2018年
    • Java SE 11(LTS)发布,优化容器化支持,增强HTTP客户端和本地变量类型推断(var)。
  • 2019-2021年
    • Java 14-17发布,引入记录类(Records)、模式匹配等特性。
    • Java 17(LTS)成为主流企业级选择。
  • 2024年3月
    • Java 22发布,优化性能和安全性,增强工具链功能。
版本分类
  • 长期支持版本(LTS):每3年发布一次,提供更长时间的维护和支持。当前LTS版本包括:
    • Java 8(2014)、Java 11(2018)、Java 17(2021)、Java 21(2023)。

5. 技术与生态演变

  • JVM与跨平台
    • JVM(Java虚拟机)是Java的核心,通过字节码实现“一次编译,到处运行”。
    • HotSpot JVM 的优化(如即时编译JIT)提升了执行效率。
  • 开源与社区
    • OpenJDK成为Java开发的基石,由Eclipse基金会等维护。
    • Jakarta EE(原Java EE)脱离Oracle,由社区主导发展。
  • 企业级应用
    • Spring框架微服务架构推动Java在企业级后端的广泛应用。
  • 移动与嵌入式
    • Android早期依赖Java(现转向Kotlin,但仍兼容Java)。
    • Java ME支持嵌入式设备开发。

6. 争议与挑战

  • Oracle与开源社区的矛盾
    • Oracle在收购Sun后,对Java SE的商业许可政策引发争议,推动OpenJDK发行版(如Amazon Corretto、Adoptium)的崛起。
  • 版本迭代速度
    • 每6个月发布新版本,导致非LTS版本采用率较低,开发者更倾向稳定LTS版本。
  • 竞争语言压力
    • Python、Go、Rust等语言在特定领域崛起,但Java凭借生态和稳定性仍占据主导地位。

7. 现代Java的定位

  • 企业级开发
    • 仍是银行、电商、大数据(Hadoop/Spark)、微服务(Spring Cloud)的首选语言。
  • 全栈能力
    • 从后端(Spring Boot)到前端(JavaFX)、移动端(Android)均有覆盖。
  • 云原生支持
    • 容器化(Docker)、Kubernetes生态中,Java通过轻量级JDK(如GraalVM)保持竞争力。

总结

Java从1995年诞生至今,经历了从桌面应用到企业级、云计算的全面进化。其核心优势——跨平台性、稳定性和庞大的生态——使其成为企业级开发的支柱。尽管面临语言创新和新兴技术的挑战,Java通过持续演进(如模块化、函数式编程)和社区协作,依然保持着旺盛的生命力。未来,Java将继续在云、大数据和AI领域扮演重要角色。

http://www.cnnetsun.cn/news/4351399.html

相关文章:

  • Codex CLI接入DeepSeek:18分钟跑通低成本AI编程
  • 蓝桥杯第十一届C++B组真题
  • Cadence Skill可视化Form设计:从代码到工程化的界面开发革命
  • Grok Bot 实战:11 个高频用例拆解与提示词模板
  • STM32H743硬件JPEG解码实战:从SD卡到LCD的显示链路优化
  • 基于Hadoop/Spark与XGBoost的新能源汽车需求预测全流程实战
  • 基于PEX8311的FPGA PCIe开发板实战:从硬件到DMA调试
  • HyperFrames音频自动化车道指南:给音量画包络线的完整教程
  • YOLO26深度解析:动态稀疏卷积、低光检测与工程部署实践
  • SSM框架实战:在线考试系统从零到部署全解析
  • 从代码生成到任务交付:构建AI Coding的Do Work Skill工作流
  • 本地部署 Stable Diffusion:6GB 显存 5 分钟跑通 768 出图
  • Agentic AI验证框架:从规则校验到事实一致性的工程实践
  • 1250A双电源快速切换柜:20ms级快速切换替代传统ATS
  • 基于QT的串口调试工具开发:从原理到工程实践
  • 零基础学书法逆锋起笔:避开六个常见错误,练出有骨力的笔画
  • 大模型多轮训练全解析:原理、代码与调参实践
  • 加拿大ATIO认证翻译怎么办理?线上、线下详细办理攻略
  • OpenVoice 语音克隆实战:从一段10秒参考音到六语配音的完整路径
  • npm依赖安全:如何评估一个包的Blast Radius爆炸半径影响范围
  • 猫抓CatCatch浏览器插件:网页媒体嗅探与资源抓取完全指南
  • 打造高级交互作品集:从产品思维到技术实现的全流程指南
  • 清源AI开发实战:无尽冬日采集设置全流程解析
  • 基于SpringBoot的在线智慧社区服务平台系统(毕业设计项目源码+文档)
  • LangGraph实战:从零构建可控的Agent状态机编排
  • 智能车竞赛制胜关键:工程化开发流程与模块化架构实战
  • PDFMathTranslate 自由页码选择功能完整指南:大论文只翻需要的几页
  • JAX 还是 TensorFlow?一份让你 10 分钟拍板的完整选型指南
  • 大数据专业毕业设计选题
  • Kronos 使用指南:3 步跑通开源金融 K 线基础模型