00 Java 安装和语言的基本组成

简介: Java 在 20 多年发展过程中,与时俱进,为了适应时代的需要,经历过两次重大的版本升级,一个是 Java 5,Java 5 提供了泛型等重要的功能;另一个是提供了 Lambda 表达式和枚举类等重要的功能的 Java 8。一些重要的 Java 的版本 JDK 1.2(新增集合类), JDK 5(新增泛型), JDK 8(LTS版本,新增 lamda 表达式,方法引用), JDK 11(LTS 版本), JDK 17(LTS 版本)。

Java 在 20 多年发展过程中,与时俱进,为了适应时代的需要,经历过两次重大的版本升级,一个是 Java 5,Java 5 提供了泛型等重要的功能;另一个是提供了 Lambda 表达式和枚举类等重要的功能的 Java 8。


一些重要的 Java 的版本 JDK 1.2(新增集合类), JDK 5(新增泛型), JDK 8(LTS版本,新增 lamda 表达式,方法引用), JDK 11(LTS 版本), JDK 17(LTS 版本)。


认识 Java



image.png


Java SE 中提供了 Java 应用程序开发需要的基本的和核心的类库,这些类库:字符串、集合、输入输出、网络通信和图形用户界面等。事实上学习 Java 就是在学习 Java 语法和类库的使用。


Java 安装


mac 环境


mac 安装方式一:手动安装


  1. 去官网下载并安装
    https://www.oracle.com/technetwork/java/javase/downloads/index.html


  1. 双击 dmg 安装包, 点击下一步就行安装就行。安装完成后找到默认的 Java 安装路径, 例如我的是/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk


image.png


  1. 配置环境变量
    使用open -e .bash_profile进行打开, 如果打开失败则先touch .bash_profile, 再 open 一次, 拷贝以下内容

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH


接着使用source .bash_profile 刷新使配置生效


  1. 键入 java -version 查看版本信息验证配置是否已生效

$ java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)


mac 安装方式二


  1. 去 HomeBrew官网中提示的步骤安装 HomeBrew。然后打开 shell 窗口,执行brew update 以确保 HomeBrew 升级到最新版本。


  1. 打开shell窗口,输入“brew cask install java”。


linux 下的安装


使用标准软件包管理工具和shell命令进行安装。


Ubuntu/Debian系统:


sudo apt-get install default-jdk

或选择安装 OPENJDK


sudo apt-get install openjdk-8-jdk


Fedora/Redhat系统:


  1. su -c "yum install java-1.8.0-openjdk-devel"

或者手动下载安装,目前 Java 官网下载需要注册账号了, 恶心的一批. 可以选择阿里的dragonwell-jdk.


下载地址 http://dragonwell-jdk.io/

wget https://dragonwell.oss-cn-shanghai.aliyuncs.com/8/8.4.4-GA/Alibaba_Dragonwell_8.4.4-GA_Linux_x64.tar.gz
# 解压对应的 tar.gz 或者 zip 文件
tar xf Alibaba_Dragonwell_8.4.4-GA_Linux_x64.tar.gz


复制到命令行后按下回车键执行追加写入命令。

cat >> ~/.bashrc << EOF
export JAVA_HOME=$HOME/jdk8u262-b10
export PATH=$PATH:$JAVA_HOME/bin
EOF


执行以下命令重新加载 .basbrc 文件。

source ~/.bashrc


验证环境变量是否生效。

java


Windows 下的安装


去官网下载并安装


https://www.oracle.com/technetwork/java/javase/downloads/index.html


下载后直接双击 exe 进行安装,最终依旧需要设置 PATH 和 JAVA_HOME 配置到系统环境变量


image.png


CLASSPATH 环境变量在大于等于 JDK 5 以后可不用手动配置了


选择Java 集成开发环境



Eclipse(推荐 IDE)


下载地址 https://www.eclipse.org/downloads/


image.png


通常可选择下载 for Java Developer 或 Java EE 企业级开发版本。


IntelliJ IDEA(推荐 IDE)


https://www.jetbrains.com/idea/


社区版免费, 企业版收费.


Netbeans(可选)


https://netbeans.org/


国外用的多, 国内不多


在线 Java 运行环境



推荐使用腾讯云 Cloud Studio


https://cloudstudio.net/


加餐一:Java SDK 选择与下载


Oracle 宣布自家的 JDK 收费之后(8u211/8u212),比较好的选择,就是OpenJDK。OpenJDK 原是 Sun Microsystems 公司为 Java 平台构建的 Java开发环境(JDK)的开源版本,完全自由,开放源码。 Sun Microsystems 公司在2006年的 JavaOne 大会上称将对 Java 开放源代码,于 2009 年 4 月 15 日正式发布OpenJDK。 甲骨文在2010年收购 Sun Microsystem 之后接管了这个项目。


JDK Builds from Oracle

https://jdk.java.net/


毕昇 JDK 目前只支持基于 OpenJDK 8 和 11 两个 LTS 版本;毕昇 JDK 当前支持 Linux/AArch64 平台。


bishengjdk-8: Bisheng JDK 8 is a high-performance, production-ready distribution of OpenJDK 8. https://gitee.com/openeuler/bishengjdk-8


Alibaba Dragonwell 是一款免费的, 生产就绪型 Open JDK 发行版,提供长期支持,包括性能增强和安全修复。


alibaba/dragonwell8: Alibaba Dragonwell8 JDK

https://github.com/alibaba/dragonwell8


Kona 是由腾讯专业 JVM 技术团队维护开发的,基于 OpenJDK 的,提供长期支持并按季度更新的 JDK 发行版本。Kona 目前作为默认 JDK 应用于腾讯云业务场景及其他 Java 应用场景。Kona 基于 OpenJDK,同时提供了更多的功能拓展及维护。通过腾讯 Kona,用户可以获得更为先进的功能及性能优化,提高用户和开发者的使用体验。目前,腾讯 Kona 仅支持 Linux x86-64 位系统。


Liberica【推荐下载】 是一个100% 开源 Java 实现。它是由BellSoft贡献的 OpenJDK 构建的,经过了彻底的测试,并通过了 OpenJDK 许可下 提供的 JCK。Standard 为常规用途,full版本包含JavaFX,lite为精简的 OpenJDK。文件体积 Full > Standard > lite。

Download OpenJDK builds of Liberica JDK, Java 8, 11, Java 17 Linux, Windows, macOS | BellSoft Java

https://bell-sw.com/pages/downloads/


Amazon Corretto【推荐下载】 是开放 Java 开发工具包 (OpenJDK) 的免费、多平台、生产就绪型发行版。Corretto 提供长期支持,其中包括性能增强和安全修复。亚马逊在内部的数千种生产服务上运行 Corretto,并且 Corretto 已被证明能够兼容 Java SE 标准。借助 Corretto,您可以在常用操作系统(包括 Linux、Windows 和 macOS)上开发和运行 Java 应用程序。


Amazon Corretto-OpenJDK 的免费多平台发行版-AWS云服务 https://aws.amazon.com/cn/corretto/


下载 OpenJDK 的 Microsoft 内部版本 | Microsoft Docs


https://docs.microsoft.com/zh-cn/java/openjdk/download


加餐二:环境变量 JAVA_TOOL_OPTIONS


指定默认语言和默认区域设置


JAVA_TOOL_OPTIONS 的经典用法是用于解决命令行导致中文乱码

切换为中文环境

export JAVA_TOOL_OPTIONS="-Duser.language=zh -Duser.region=CN"


切换为英文环境

export JAVA_TOOL_OPTIONS="-Duser.language=en -Duser.region=US"


JAVA_TOOL_OPTIONS 是何物


有些应用不方便设置 JVM 参数,如命令行应用、通过JNI(Java Native Interface)API调用虚拟机的应用、脚本嵌入虚拟机中的应用等。这种情况环境变量 JAVA_TOOL_OPTIONS 就非常有用了,它会被 JNI API 的 JNI_CreateJavaVM 函数使用。


各种 OPTIONS 的区别


也许你经常遇到JAVA_OPTS、_JAVA_OPTIONS 和 JAVA_TOOL_OPTIONS,那么他们有什么不同呢?


  • JAVA_OPTS:常用于一些应用的配置,如Tomcat,但它一般不作为环境变量,也不能被JVM识别的,是那些应用的自定义配置;


  • _JAVA_OPTIONS:也是作为环境变量来替代命令行参数的,但它是JVM厂家自定义的,可以覆盖JAVA_TOOL_OPTIONS,但各厂家的不同,_JAVA_OPTIONS是 Oracle 的JVM,而 IBM 的则是用IBM_JAVA_OPTIONS。


  • JAVA_TOOL_OPTIONS:是标准的,所有虚拟机都能识别和应用的。


例如可以在系统环境变量中增加一个变量,变量名为: JAVA_TOOL_OPTIONS, 变量值为:-Dfile.encoding=UTF-8,保存,重新打开命令提示符,现在,再运行一次刚刚的程序即可


linux 下 Java 编码环境的设置


如果运行某些 linux 工具软件出问题(因为对中文编码支持有问题),可以尝试如下切换编码。

# 切换为中文编码
export LANG=zh_CN.GBK
# 切换为英文编码
export LANG=en_US
# 切换为 UTF-8 编码
export LANG=zh_CN.UTF-8


遇到的问题



Error:java: 无效的标记: --release


我目前使用的是版本 8,当我改成 11 后就 ok 了。


参考



  • 丁振凡编著,《Java语言程序设计(第2版)》华东交大版,2014.9








目录
相关文章
|
5月前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
179 5
|
2月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
142 14
|
3月前
|
Java 编译器 应用服务中间件
为什么说 Java 语言编译与解释并存的原因
在编程语言的世界里,Java以其独特的“编译与解释并存”特性独树一帜。这一特性不仅赋予了Java强大的跨平台能力,还使其在性能和灵活性上达到了很好的平衡。接下来,我们将深入探讨Java语言这一特性的本质、原理以及在实际应用中的体现。
69 6
|
2月前
|
JSON JavaScript 前端开发
Python+JAVA+PHP语言,苏宁商品详情API
调用苏宁商品详情API,可通过HTTP/HTTPS发送请求并解析响应数据,支持多种编程语言,如JavaScript、Java、PHP、C#、Ruby等。核心步骤包括构造请求URL、发送GET/POST请求及解析JSON/XML响应。不同语言示例展示了如何获取商品名称与价格等信息,实际使用时请参考苏宁开放平台最新文档以确保兼容性。
|
3月前
|
分布式计算 Java 大数据
Java 语言基础概念与常识之主要特点解析
Java是一种广泛应用于企业级开发、移动应用(如Android)、大数据处理及云计算等领域的编程语言。其核心特点包括跨平台性(一次编写,到处运行)、面向对象设计、自动垃圾回收、多线程支持和高性能表现。Java通过JVM实现跨平台,具备强大的健壮性和安全性,同时拥有丰富的标准库与活跃的开发者社区。本文深入解析Java的技术优势及其在电商系统、大数据处理和云计算中的实际应用,并提供相关面试资料供学习参考。
104 0
|
11月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
503 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
3月前
|
网络协议 安全 Java
实现Java语言的文件断点续传功能的技术方案。
像这样,我们就完成了一项看似高科技、实则亲民的小工程。这样的技术实现不仅具备实用性,也能在面对网络不稳定的挑战时,稳稳地、不失乐趣地完成工作。
192 0
|
10月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
145 0
|
7月前
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
675 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
6月前
|
存储 Java 数据安全/隐私保护
Java语言位运算符详解
Java语言提供了7种位运算符:按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(&lt;&lt;)、带符号右移(&gt;&gt;)和无符号右移(&gt;&gt;&gt;)。这些运算符主要用于对long、int、short、byte和char类型的数据进行二进制位级别的操作,不能用于double、float和boolean类型。文中详细讲解了每种运算符的规则和应用场景,并指出位运算在实际开发中有重要应用价值,不仅限于面试。
278 2

热门文章

最新文章