器→工具, 工具软件, 术→技巧, 研发, 编程语言

JAVA环境:JDK的安装与配置

钱魏Way · · 12 次浏览

JAVA开发与运行环境

Java的开发和运行环境是指在进行Java应用程序开发和执行过程中所需的软件和工具。下面分别介绍Java的开发环境和运行环境:

Java开发环境(Java Development Environment):

  • JDK(Java Development Kit):
    • JDK是Java开发工具包,提供了开发Java应用程序所需的工具和资源,包括编译器(javac)、调试器、Java虚拟机(JVM)、Java类库(Java API)等。JDK是开发Java应用程序的基础,它提供了完整的开发环境,适用于开发人员和软件工程师。
    • 开发工具:除了JDK,还可以使用一些集成开发环境(Integrated Development Environment,IDE)来提升开发效率,如Eclipse、IntelliJ IDEA和NetBeans等。这些IDE提供了代码编辑器、调试器、构建工具、自动完成和代码重构等功能,方便开发人员进行代码编写、调试和项目管理。
  • Java运行环境(Java Runtime Environment):
    • JRE(Java Runtime Environment):JRE是Java运行时环境,用于执行已编译的Java应用程序。它包含了Java虚拟机(JVM)和Java类库(Java API),提供了必要的运行时环境支持。JRE适用于普通用户和终端用户,用于运行Java应用程序,而不涉及Java应用程序的开发。
    • Java插件:Java插件允许在网页中嵌入Java应用程序。它可以通过浏览器插件的形式,使用户能够在网页上直接运行Java应用程序。Java插件通常与JRE一起提供。

在开发Java应用程序时,需要先安装JDK来编写、编译和调试代码,使用开发工具(如IDE)来提高开发效率。当Java应用程序开发完成后,最终用户只需安装JRE来运行已编译的Java应用程序,而不需要安装完整的开发工具包。

总结起来,Java的开发环境包括JDK和开发工具(如IDE),用于编写、编译和调试Java应用程序;Java的运行环境包括JRE和Java插件,用于执行已编译的Java应用程序和在网页中嵌入Java应用程序。

JDK与JRE的区别

JDK简介

JDK(Java Development Kit)是Java开发工具包,它提供了Java开发人员编写、编译、调试和运行Java程序所需的工具和资源。以下是JDK包含的主要内容:

  • 编译器(javac):JDK包含了Java编译器,用于将Java源代码(以.java文件形式)编译成Java字节码(以.class文件形式)。
  • Java虚拟机(JVM):JDK包含了Java虚拟机,它是Java程序运行的核心组件。JVM负责将Java字节码转换为机器代码并执行,提供了内存管理、垃圾回收、线程管理和安全性等功能。
  • Java类库(Java API):JDK提供了丰富的Java类库,包含了大量的预定义类和方法,用于实现各种功能和任务。Java类库包括标准的Java类、接口、数据结构、输入输出、网络通信、图形用户界面等。
  • 调试工具:JDK提供了一些调试工具,用于帮助开发人员调试Java程序。例如,javac命令用于编译Java代码,java命令用于运行Java应用程序,jdb命令用于命令行调试,jconsole命令用于监视和管理Java应用程序等。
  • 开发工具:JDK还提供了一些开发工具,用于辅助Java应用程序的开发过程。例如,javap命令用于反编译Java字节码,javadoc命令用于生成Java文档,jar命令用于创建和管理Java归档文件(JAR文件)等。
  • 示例代码和示例应用程序:JDK包含了一些示例代码和示例应用程序,供开发人员参考和学习。这些示例涵盖了各种Java编程技术和用法,帮助开发人员更好地理解和应用Java语言和类库。

需要注意的是,JDK是面向Java开发人员和软件工程师的工具包,它提供了完整的开发环境。与JRE相比,JDK包含了更多的工具和资源,用于编写、编译和调试Java应用程序。所以,如果你只是需要运行Java应用程序,而不需要进行Java开发,那么安装JRE就足够了。

JRE简介

Java运行环境(Java Runtime Environment,JRE)是Java平台的核心组件之一,它提供了执行Java应用程序所需的运行时环境。

JRE包括以下主要组件:

  • Java虚拟机(Java Virtual Machine,JVM):JVM是Java程序运行的关键部分。它负责将Java字节码转换为机器代码并执行。JVM提供了内存管理、垃圾回收、线程管理和安全性等功能,以保证Java程序的可靠运行。
  • Java类库(Java Class Libraries):JRE中包含了丰富的Java类库,提供了各种预定义类和方法,用于实现各种功能和任务。这些类库包括标准的Java类、接口、数据结构、输入输出、网络通信、图形用户界面等,使开发人员能够更轻松地编写Java程序。
  • Java部署工具:JRE还包含了一些用于部署Java应用程序的工具,例如Java Web Start和Java插件。Java Web Start允许用户通过简单的点击即可从网络上启动和安装Java应用程序。Java插件则允许在网页中嵌入Java应用程序。

使用JRE,用户可以在自己的计算机上运行已编译的Java应用程序,而无需安装完整的Java开发工具包(JDK)。

JAVA的平台划分

Java平台的划分主要有三个方面:Java SE(Java Standard Edition)、Java EE(Java Enterprise Edition)和Java ME(Java Micro Edition)。

  • Java SE(Java Standard Edition):Java SE是Java平台的标准版,它提供了用于开发桌面和服务器应用程序的核心功能和API。Java SE包括Java语言的基本特性、Java虚拟机(JVM)、Java类库(Java API)等组件,可以用于开发各种类型的Java应用程序,从简单的命令行工具到复杂的企业级应用。
  • Java EE(Java Enterprise Edition):Java EE是针对企业级应用开发的扩展版,它在Java SE的基础上提供了一系列的扩展功能和API,用于开发大型、分布式和可伸缩的企业应用程序。Java EE包括了Web应用开发、分布式应用开发、消息传递、事务管理、安全性等方面的技术规范和API,可以用于构建复杂的企业级应用和系统。
  • Java ME(Java Micro Edition):Java ME是为嵌入式设备和移动设备开发的版本,它针对资源受限的环境进行了优化,包括了一组精简的Java API和配置文件,以满足嵌入式和移动设备的特殊需求。Java ME可用于开发手机、智能卡、传感器设备、家电等嵌入式系统和应用。

这三个版本的Java平台针对不同的应用领域和需求提供了相应的功能和API。Java SE是Java的核心平台,适用于桌面和服务器应用开发;Java EE扩展了Java SE,用于企业级应用开发;而Java ME针对嵌入式和移动设备提供了轻量级的版本。开发人员可以根据实际需求选择适合的Java平台版本进行开发。

JAVA的版本问题

早期 Java SE 还叫 JDK 的时代以 1.X 命名,从 1.0 到 1.4 版本。5.0 开始主版本号开始了一次跃升,但是大家依旧习惯 1.5 一直到 1.8 都有 Java 8 和 Java 1.8 混着叫的习惯,到了 Java 9 开始变不再 1.X 了。

截至发文 Java 的长期支持版是 8 和 11,11版本的免费长期支持需要使用 OpenJDK。

Java有多个版本,每个版本都引入了新的特性、改进和修复了之前版本的问题。以下是一些常见的Java版本:

  • Java 1.0: 于1996年发布的Java的初始版本。它引入了Java的基本语法、类库和Java虚拟机。
  • Java 1.1: 于1997年发布,增加了内部类、迭代器和JavaBeans等功能。
  • Java 1.2 (Java 2): 于1998年发布,引入了重要的特性,如Swing图形界面库、集合框架、反射API和Java命名和目录接口(JNDI)等。
  • Java 1.3: 于2000年发布,包含了性能改进、Java声音API、Java命名空间和Java运行时支持等增强。
  • Java 1.4: 于2002年发布,引入了重要特性,如正则表达式、异常链、NIO(非阻塞输入/输出)和XML处理等。
  • Java 5 (Java 1.5): 于2004年发布,是一个重要的版本,引入了许多关键特性,如泛型、枚举、自动装箱/拆箱、注解和迭代器增强等。
  • Java 6 (Java 1.6): 于2006年发布,包含了性能改进、脚本语言支持、Web服务增强和JDBC(Java数据库连接)改进等。
  • Java 7: 于2011年发布,带来了新特性,如Diamond语法、try-with-resources、switch语句改进和多重异常捕获等。
  • Java 8: 于2014年发布,是一个重要版本,引入了Lambda表达式、Stream API、日期/时间API、默认方法和函数式接口等。
  • Java 9: 于2017年发布,引入了模块化系统、JShell(交互式编程工具)、改进的JVM、HTTP/2和REPL等特性。
  • Java 10、11、12、13、14、15、16、17:这些版本都包含了一些改进、优化和新特性,如局部变量类型推断、垃圾回收器的改进、新的字符串方法和HTTP客户端API等。

需要注意的是,每个Java版本都有一定的生命周期,包括发布、支持和终止支持阶段。建议开发人员使用最新的稳定版本,以获得最新的特性和改进,并确保安全性和性能方面的修复。

此外,Java还有不同的发行版,如Oracle JDK(Oracle官方版本)、OpenJDK(开源版本)、Amazon Corretto等,它们在功能和许可证方面可能略有差异。开发人员可以根据自己的需求选择适合的Java版本和发行版。

不同版本的JDK(Java Development Kit)使用的协议可能有所不同。以下是一些常见的JDK版本及其相关的协议:

  • Oracle JDK 8及以前版本:这些版本的Oracle JDK使用的是Oracle Binary Code License Agreement for the Java SE Platform(Oracle二进制代码许可协议)。根据此协议,开发人员可以免费使用Oracle JDK用于开发、测试和部署Java应用程序。
  • Oracle JDK 9及以后版本:自JDK 9开始,Oracle采用了新的许可模型,即Oracle Technology Network License Agreement(Oracle技术网络许可协议)。根据此协议,开发人员可以免费使用Oracle JDK用于开发、测试和部署Java应用程序,但在商业部署场景下,可能需要购买商业许可。

JDK的不同发行版

Oracle JDK 是由 Oracle 公司发行的 JDK 商业版本。2009 年 Oracle 公司收购了 Sun 公司,Java JDK 的维护方也由 Sun 公司变为 Oracle 公司。 目前,Oracle JDK的使用非常广泛,尤其是 JDK8 和 JDK11 的长期支持版本。Oracle JDK 是商业版本,在生产环境中使用 Oracle JDK 要注意法律风险。

Java Development Kit (JDK) 有几个不同的发行版,以下是一些常见的 JDK 发行版:

  • OpenJDK:OpenJDK 是 Java 的开源实现,由一个社区驱动的项目开发和维护。它是根据开放源代码许可证(如 GNU GPL)提供的 JDK 发行版。OpenJDK 与 Oracle JDK 有很高的兼容性,包含相同的核心功能和 API。
  • AdoptOpenJDK:AdoptOpenJDK 是一个由社区支持的 OpenJDK 发行版,提供针对多个操作系统和架构的预编译二进制包。它致力于提供高质量的 OpenJDK 发行版,并提供长期支持和定期更新。
  • Amazon Corretto:Amazon Corretto 是由亚马逊公司开发和维护的 OpenJDK 发行版。它提供了免费的、多平台的 JDK 发行版,适用于开发和部署 Java 应用程序。

除了上述发行版外,还有其他一些基于 OpenJDK 的 JDK 发行版,如 Azul Zulu、IBM SDK for Java 等。这些发行版可能提供特定的增强功能、性能优化或专有工具,以满足特定的需求和使用场景。以下是国内大厂开源的JDK:

阿里 Dragonwell

阿里巴巴的 Dragonwell(中文名:龙井)是一款自行开发和维护的 Java 开发工具包(JDK),是基于 OpenJDK 构建的一个定制版本。它旨在提供高性能、高稳定性和安全性的 Java 运行环境,特别适用于在阿里巴巴的大规模分布式系统中运行 Java 应用程序。

Dragonwell 基于 OpenJDK 社区版进行开发,融合了阿里巴巴的技术优势和实践经验,以满足企业级应用的需求。以下是 Dragonwell 的一些特点和功能:

  • 高性能:Dragonwell 对 JIT(即时编译器)进行了优化,通过采用性能增强的编译器策略和优化算法,提供更好的运行时性能。
  • 高稳定性:Dragonwell 针对阿里巴巴的大规模分布式系统进行了优化和测试,通过修复和预防常见的稳定性问题,提供更可靠的 Java 运行环境。
  • 安全性:Dragonwell 集成了阿里巴巴的安全技术和加固措施,包括代码扫描、漏洞修复和安全增强等,以提供更安全的 Java 运行时环境。
  • 工具和插件:Dragonwell 提供了一些额外的工具和插件,帮助开发人员进行性能分析、问题诊断和调优。
  • 长期支持:Dragonwell 提供了长期支持(LTS)版本,以满足企业级应用的需求,并定期发布更新和安全补丁。
  • 阿里巴巴在其内部大规模应用 Dragonwell,并将其开源,以促进更广泛的使用和社区贡献。开发人员可以访问 Dragonwell 的官方网站或 GitHub 仓库,获取最新版本的 Dragonwell JDK,并了解其特性、文档和社区支持。

总之,阿里 Dragonwell 是阿里巴巴自行开发和维护的 Java 开发工具包,通过优化性能、提高稳定性和加强安全性,提供了适用于企业级应用的高性能 Java 运行环境。

腾讯 Kona JDK

腾讯 Kona JDK 是腾讯内部基于 OpenJDK 定制的 JDK 发行版本。主要应用于腾讯云业务场景及其他Java应用场景,并且针对超大规模的大数据、机器学习和云计算进行了深度优化。

Tencent Kona 是腾讯开源的、免费的、基于 OpenJDK 的发行版本,并且受腾讯长期支持(LTS)和季度更新。目前,Tencent Kona 只提供基于 OpenJDK 8 的 Linux 版本。

TencentKona-8 支持以下特性:

  • Default CDS Archive 提高启动速度.
  • Java Flight Recorder 采集java应用程序的诊断信息.
  • Optimized Work Stealing Threads GC线程调度优化
  • G1 FullGC 并行化
  • G1GC 性能优化
  • 异步GC日志

华为毕昇 JDK

华为的毕昇 JDK(Bisheng JDK)是华为公司自主研发的一款Java开发工具包(JDK)。毕昇 JDK是基于OpenJDK构建的定制版本,旨在提供高性能、高效能的Java运行环境,特别适用于在华为的大规模分布式系统中运行Java应用程序。

以下是毕昇 JDK的一些特点和功能:

  • 高性能:毕昇 JDK对JIT(即时编译器)进行了优化,采用了特定的编译策略和算法,以提供更好的运行时性能。
  • 大规模分布式系统优化:毕昇 JDK针对华为自身的大规模分布式系统进行了优化和适配,通过修复和预防常见的稳定性问题,提供更可靠的Java运行环境。
  • 安全性:毕昇 JDK集成了华为的安全技术和加固措施,包括代码扫描、漏洞修复和安全增强等,以提供更安全的Java运行时环境。
  • 高效能计算(HPC)支持:毕昇 JDK对高效能计算领域的需求进行了优化,提供了针对高性能计算应用的特殊优化和功能。
  • 多版本支持:毕昇 JDK提供了多个版本,包括社区版(Community Edition)和企业版(Enterprise Edition),以满足不同用户的需求。

JDK的安装与配置

Windows环境下JDK的安装与配置

JDK安装完毕后最核心的是环境变量的配置。

在“环境变量”窗口中,选择“系统变量”部分,点击“新建”按钮。

  • 在“新建系统变量”窗口中,输入变量名为 “JAVA_HOME”(或其他您喜欢的变量名),然后设置变量值为 JDK 的安装路径。例如,对于 JDK 1.8,将变量值设置为 “C:\Program Files\Java\jdk1.8″;对于 JDK 11,将变量值设置为 “C:\Program Files\Java\jdk11″。点击“确定”保存变量。
  • 在“系统变量”部分中,找到名为 “Path” 的变量,双击进行编辑。在“编辑环境变量”窗口的“变量值”字段中,添加 %JAVA_HOME%\bin 到变量值的开头(注意前面的分号)。点击“确定”保存更改。
  • 验证配置:打开命令提示符窗口,输入 “java -version” 命令。如果配置正确,应该能够看到当前设置的 JDK 版本。
  • 切换 JDK 版本:要在不同的 JDK 版本之间进行切换,可以通过修改环境变量 “JAVA_HOME” 的值来实现。

Linux环境

在 Linux 操作系统下配置 JDK(Java Development Kit),您可以按照以下步骤进行操作:

  • 解压 JDK 文件:将下载的 JDK 文件解压到您想要安装的目录。例如,您可以将其解压到 “/usr/local” 目录下。
tar -xvf jdk-xxxx.tar.gz -C /usr/local/
  • 配置环境变量:打开终端窗口,编辑 “~/.bashrc” 文件,将以下内容添加到文件的末尾:
export JAVA_HOME=/usr/local/jdk-xxxx  # JDK 的安装路径
export PATH=$JAVA_HOME/bin:$PATH
  • 使环境变量生效:在终端窗口中执行以下命令,使环境变量生效:
source ~/.bashrc

验证配置:在终端窗口中输入 “java -version” 命令。如果正确安装和配置了 JDK,您应该能够看到 JDK 的版本信息。

参考链接:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注