Java 安装和语言的基本组成

极客拾光
• 阅读 120

认识 Java

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

一些重要的 Java 的版本 JDK 1.2(新增集合类), JDK5(新增泛型), JDK8(LTS版本,新增 lamda 表达式,方法引用), JDK11(LTS 版本), JDK17(LTS 版本)。

Java 安装和语言的基本组成

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

Java 安装

mac 环境

安装方式一:手动安装

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

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

Java 安装和语言的基本组成

3. 配置环境变量
使用 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 刷新使配置生效。

4. 键入 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 升级到最新版本。
  2. 打开 shell 窗口,输入“brew cask install java”。

linux 下的安装

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

<!-- more -->

Ubuntu/Debian 系统

安装 OPEN JDK

sudo apt install openjdk-8-jdk 或者 sudo apt install openjdk-11-jdk

Fedora/Redhat 系统

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 文件(也可使用全局功能的 /etc/profile 文件)。

source ~/.bashrc

验证环境变量是否生效。

java

centos 系统

yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64

Windows 下的安装

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

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

Java 安装和语言的基本组成

安装完 Java 后记得进行 java -version 或者 java -version 进行验证。

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

安装集成开发软件

IntelliJ IDEA

https://www.jetbrains.com/idea/
社区版免费, 企业版收费。

Eclipse

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

Java 安装和语言的基本组成

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

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


Download Azul Zulu Builds of OpenJDK
https://www.azul.com/downloads/?package=jdk

加餐二: 环境变量 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 即可。

例如可以在系统环境变量中增加一个变量,变量名为: 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 了。

NetBeans安装提示neatbeans cannot find java 1.8 or higher

去 netbeans\etc 目录下的 netbeans.conf 配置文件里面配置 Java 路径

netbeans_jdkhome="C:\Program Files\jdk_11"

参考

点赞
收藏
评论区
推荐文章
kenx kenx
3年前
Java8 新特性 Stream Api 之集合遍历
前言随着java版本的不断更新迭代,java开发也可以变得甜甜的,最新版本都到java11了,但是后面版本也是不在提供商用支持,需要收费,但是java8依然是持续免费更新使用的,后面版本也更新很快眼花缭乱,所以稳定使用还是用java8把既可以体验到新功能,又不需要,烦恼升级带来的bug新特性比较新的的特性就是流Stream,和lambda表达式图上
初步探索GraalVM--云原生时代JVM黑科技
1云原生时代Java语言的困境经过多年的演进,Java语言的功能和性能都在不断的发展和提高,诸如即时编译器、垃圾回收器等系统都能体现Java语言的优秀,但是想要享受这些功能带来的提升都需要一段时间的运行来达到最佳性能,总的来说Java是面
待兔 待兔
4年前
Java中遍历HashMap的5种方式
本教程将为你展示Java中HashMap的几种典型遍历方式。如果你使用Java8,由于该版本JDK支持lambda表达式,可以采用第5种方式来遍历。如果你想使用泛型,可以参考方法3。如果你使用旧版JDK不支持泛型可以参考方法4。1、通过ForEach循环进行遍历importjava.io.IOException;importjav
Stella981 Stella981
3年前
Lambda表达式中Collections的接口有哪些变化?
我们先从最熟悉的\Java集合框架(JavaCollectionsFramework,JCF)\开始说起。为引入Lambda表达式,Java8新增了java.util.function包,里面包含常用的函数接口,这是Lambda表达式的基础,Java集合框架也新增部分接口,以便与Lambda表达式对接。首先回顾一下Java集合框架的接口继承
Wesley13 Wesley13
3年前
Java泛型详解
引言Java泛型是jdk1.5中引入的一个新特性,泛型提供了编译时的类型检测机制,该机制允许程序员在编译时检测到非法的类型。泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用。本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。泛型基础
Wesley13 Wesley13
3年前
Java 8中你可能没听过的10个新特性
lambda表达式,lambda表达式,还是lambda表达式。一提到Java8就只能听到这个,但这不过是其中的一个新功能而已,Java8还有许多新的特性——有一些功能强大的新类或者新的用法,还有一些功能则是早就应该加到Java里了。这里我准备介绍它的10个我个人认为非常值得了解的新特性。总会有一款适合你的,开始来看下吧。default方法
Wesley13 Wesley13
3年前
Java 8 Lambda表达式的使用
lambda表达式允许你通过表达式来代替功能接口。lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。Lambda表达式还增强了集合库。JavaSE8添加了2个对集合数据进行批量操作的包:java.util.function包以及java.util.stre
Wesley13 Wesley13
3年前
Java 8新特性之Stream 概念
Java8中有两大最为重要的改变。第一个是Lambda表达式;另外一个则是StreamAPI(java.util.stream.\)。Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用StreamAPI对集合数据进行操作,就类似于使用SQL执行
Wesley13 Wesley13
3年前
Java8—一万字的Lambda表达式的详细介绍与应用案例
  基于Java8详细介绍了lambda表达式的语法与使用,以及方法引用、函数式接口、lambda复合等Java8的新特性!文章目录1Lambda的概述2函数式接口2.1Consumer消费型接口2.2Supplier供给型接口2.3Function<T,R函数型接口
Wesley13 Wesley13
3年前
Java 8 中你可能没听过的 10 个新特性
lambda表达式,一提到Java8就只能听到这个,但这不过是其中的一个新功能而已,Java8还有许多新的特性——有一些功能强大的新类或者新的用法,还有一些功能则是早就应该加到Java里了。default方法终止进程第一个是isAlive()方法,有了它你可以判断进程是否还活着。第二个方法则更加强大,它叫destroyForc
极客拾光
极客拾光
Lv1
远上寒山石径斜,白云深处有人家。
文章
3
粉丝
0
获赞
0