系列文章目录
- 第一章 第一节 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 gitb.使用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.0和Servlet技术推出,奠定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)。
- Java 2平台正式推出,分为三个版本:
3. 成熟与普及(2000-2009)
- 2000-2004年:
- JDK 1.3、1.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、钻石操作符(
<>)等语法糖。
- 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)。
- Java SE 11(LTS)发布,优化容器化支持,增强HTTP客户端和本地变量类型推断(
- 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领域扮演重要角色。