00. 认识 Java 语言与安装教程

news2024/12/27 12:40:13

认识 Java

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

一些重要的 Java 的版本 JDK 1.2(新增集合类), JDK5(新增泛型), JDK8(LTS版本,新增 lamda 表达式,方法引用), JDK11(LTS 版本 local variable syntax ofr lambda parameters), JDK17(LTS 版本 sealed types, always-strict floating-point semantics), JDK21(LTS 版本)。

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

Java 安装

mac 环境

手动安装

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

2. 双击 dmg 安装包, 点击下一步就行安装就行。安装完成后找到默认的 Java 安装路径, 例如我的是 /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk。如果是普通压缩包,则需要将其解压并移动至 /Library/Java/JavaVirtualMachines 目录中。

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

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

最后使用 source .bash_profile 刷新使配置生效。

进行验证是否安装对应版本,请键入 java -version 或者 java -version

brew 方式安装
  1. 去 HomeBrew 官网安装 HomeBrew。然后打开 shell 窗口,执行 brew update 以确保 HomeBrew 升级到最新版本。
  2. 打开 shell 窗口,输入 brew cask install java

linux 环境

可以使用包管理器进行安装,这里详细介绍手动安装。

目前 Java 官网下载需要注册账号了, 很恶心。可以选择三方的阿里的 dragonwell-jdk。

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=/path/to/<java>
export $JAVA_HOME/bin:PATH=$PATH
EOF

执行以下命令重新加载 .basbrc 文件(也可使用全局功能的 /etc/profile 文件)。

source ~/.bashrc

windows 环境

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

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

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

快捷脚本

setx /M JAVA_HOME "C:\Progra~1\Java\<java>"
setx /M PATH "C:\Progra~1\Java\<java>\bin;%PATH%"

echo %PATH%
echo %JAVA_HOME%

java -version

配套 Java IDE

IntelliJ IDEA

https://www.jetbrains.com/idea/
社区版免费, 企业版试用固定天数后收费。

Eclipse

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

可按需选择 for Java Developer 或 Java EE 企业级开发版本。

VS Code

VS code 对 java 的支持良好,部分国外程序员正在使用它。

Netbeans

https://netbeans.org/ 国外用的较多,国内不太推荐

加餐

JDK 的多种选择

JDK Builds from Oracle
https://jdk.java.net/


毕昇 JDK 目前只支持基于 OpenJDK。

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 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 应用程序。
https://aws.amazon.com/cn/corretto/


下载 Microsoft Build of OpenJDK | Microsoft Learn
https://docs.microsoft.com/zh-cn/java/openjdk/download


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


GraalVM JDK 是一个高性能的 JDK 发行版,它旨在加速用 Java 和其他 JVM 语言编写的应用程序的执行,同时还为 JavaScript、Python、基于 LLVM 的语言(如 C 和 C++)以及许多其他流行编程语言提供运行时。此外,GraalVM 为编程语言之间提供了高效互操作性,并将 Java 应用程序提前编译为本机可执行文件,从而加快启动时间并降低内存开销。
https://www.graalvm.org/downloads

记录

linux 下 Java 编码环境的设置

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

# 切换为中文编码
export LANG=zh_CN.GBK

# 切换为英文编码
export LANG=en_US

# 切换为 UTF-8 编码
export LANG=zh_CN.UTF-8

各种 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 即可。

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

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

JAVA_TOOL_OPTIONS 的经典用法是指定默认语言和默认区域设置,用于解决命令行导致中文乱码,

切换为中文环境

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

切换为英文环境

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

问答

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"

参考

  • 丁振凡编著,《Java 语言程序设计(第 2 版)》华东交大版,2014.9
  • 免费公开课_传智播客和黑马程序员免费公开课 http://yun.itheima.com/open
  • Java 从小白到大牛-图书-图灵社区 http://www.ituring.com.cn/book/2480
  • openjdk 官网 http://openjdk.java.net/
  • Java Downloads | Oracle https://www.oracle.com/java/technologies/downloads/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1532748.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GitHub配置SSH Key(详细版本)

GitHub配置SSH Key的目的是为了帮助我们在通过git提交代码是&#xff0c;不需要繁琐的验证过程&#xff0c;简化操作流程。比如新建的仓库可以下载, 但是提交需要账号密码。 步骤 一、设置git的user name和email 如果你是第一次使用&#xff0c;或者还没有配置过的话需要操作…

linux内核input子系统概述

目录 一、input子系统二、关键数据结构和api2.1 数据结构2.1.1 input_dev2.1.2 input_handler2.1.3 input_event2.1.4 input_handle 2.2 api接口2.2.1 input_device 相关接口input_device 注册流程事件上报 2.2.2 input handle 相关接口注册 handle指定 handle 2.2.3 input han…

Python 深度学习第二版(GPT 重译)(一)

前言 序言 如果你拿起这本书&#xff0c;你可能已经意识到深度学习在最近对人工智能领域所代表的非凡进步。我们从几乎无法使用的计算机视觉和自然语言处理发展到了在你每天使用的产品中大规模部署的高性能系统。这一突然进步的后果几乎影响到了每一个行业。我们已经将深度学…

Java与Go:指针

在计算机内存中&#xff0c;每个变量都有一个唯一的地址&#xff0c;指针就是用来保存这个地址的变量。通过指针&#xff0c;我们可以间接地访问和修改存储在该地址处的数据。今天我们来聊一聊Java和Go指针&#xff0c;预告一下&#xff0c;我们需要借助C语言做一些小小的比较。…

Jmeter Ultimate Thread Group 和 Stepping Thread Group

线程组&#xff1a;使用复杂场景的性能测试 有时候我们做性能测试时&#xff0c;只依靠自带的线程组&#xff0c;显示满足不了性能测试中比较复杂的场景&#xff0c;下面这两种线程组可以帮助你很好的完成复杂的场景 第一种&#xff1a;Stepping Thread Group 在取样器错误后…

详解ThreadLocal

为什么出现ThreadLocal &#xff1f; 在多线程环境下&#xff0c;如果多个线程同时修改一个公共变量&#xff0c;可能会出现线程安全问题&#xff0c;即该变量的最终结果可能出现异常。为了解决线程安全问题&#xff0c;JDK提供了很多技术手段&#xff0c;比如使用synchronize…

软考高级:软件架构风格-虚拟机风格概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

练习 10 Web [MRCTF2020]你传你呢

和test5一样&#xff0c;文件上传限制为图片&#xff0c;使用.htaccess文件让上传成功图片木马文件进行执行 开屏暴击&#xff0c;差点去世 尝试上传文件 各种过滤&#xff0c;但是能传图片&#xff0c;这里就不写了&#xff0c;我做过的test5遇到过的重复内容 直接尝试在te…

HarmonyOS/OpenHarmony应用开发-DevEco Studio 在MAC上启动报错

报错截图 报错详细内容 ------------------------------------- Translated Report (Full Report Below) -------------------------------------Process: devecostudio [8640] Path: /Applications/DevEco-Studio.app/Contents/MacOS/devecos…

ab (Apache benchmark) - 压力/性能测试工具

Apache benchmark&#xff08;ab&#xff09; 安装window安装使用方法 - bin目录运行使用方法 - 任意目录运行 linux安装 基本命令介绍常用参数:输出结果分析&#xff1a; ab的man手册 安装 window安装 官网下载链接&#xff1a;https://www.apachehaus.com/cgi-bin/download…

docker启动卡死问题排查

问题&#xff1a;输入docker ps 或则vession 卡死&#xff0c;无任何输出 排查思路如下&#xff1a; 1、查看docker状态或者日志 journalctl -u docker.service 或者 systemctl status docker 3月 20 18:23:06 dfbpmyy2 dockerd[1114]: time"2024-03-20T18:23:06.7449…

mysql体系结构及主要文件

目录 1.mysql体系结构 2.数据库与数据库实例 3.物理存储结构​编辑 4.mysql主要文件 4.1数据库配置文件 4.2错误日志 4.3表结构定义文件 4.4慢查询日志 4.4.1慢查询相关参数 4.4.2慢查询参数默认值 4.4.3my.cnf中设置慢查询参数 4.4.4slow_query_log参数 4.4.…

【xr806开发板使用】连接wifi例程实现

##开发环境 win10 WSL ##1、环境配置 参考&#xff1a;https://aijishu.com/a/1060000000287513 首先下载安装wsl 和ubuntu https://docs.microsoft.com/zh-cn/windows/wsl/install &#xff08;1&#xff09;安装repo&#xff1a; 创建repo安装目录&#xff1a; mkdir ~/…

练习4-权重衰减(李沐函数简要解析)

环境:练习1的环境 代码详解 0.导入库 import torch from torch import nn from d2l import torch as d2l1.初始化数据 这里初始化出train_iter test_iter 可以查一下之前的获取Fashion数据集后的数据格式与此对应 n_train, n_test, num_inputs, batch_size 20, 100, 200, …

基于cnn深度学习的yolov5+pyqt+分类+resnet+骨龄检测系统

往期热门博客项目回顾&#xff1a; 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 YOLOv5与骨龄识别 YOLOv5&a…

C语言指针与地址基础学习(取地址运算)

C语言指针与地址基础学习&#xff08;取地址运算&#xff09; 取地址运算&#xff1a;&运算符取得变量的地址代码示例一运算符& 取地址运算&#xff1a;&运算符取得变量的地址 代码示例一 #include<stdio.h> int main() {int a;a 6;printf("sizeof(i…

通过nginx配置文件服务器(浏览器访问下载)

配置服务器端文件下载和展示(Nginx) nginx.conf文件中增加配置&#xff0c;然后浏览器里访问ip:port回车即可 server { listen port; server_name 服务端ip; # 指定文件下载目录的路径 location / { # 使用root指令来设置文件的根目录 # Nginx会在该目录下寻找相对于loca…

【MySQL】-锁的使用

1、锁的粒度分类 1、全局锁 一般用于数据库备份&#xff0c;整个库只读 FLUSH TABLES WITH READ LOCK 2、表级锁 细分为&#xff1a; 1&#xff09;意向锁 Intention 事务A对表加行级锁&#xff0c;这行记录就只能读不能写。 事务B申请增加表级锁&#xff0c;如果他申请…

【Springboot3+Mybatis】文件上传阿里云OSS 基础管理系统CRUD

文章目录 一、需求&开发流程二、环境搭建&数据库准备三、部门管理四、员工管理4.1 分页(条件)查询4.2 批量删除员工 五、文件上传5.1 介绍5.2 本地存储5.3 阿里云OSS1. 开通OSS2. 创建存储空间Bucket 5.4 OSS快速入门5.5 OSS上传显示文件 六、配置文件6.1 yml配置6.2 C…

linux 命令笔记:gpustat

1 命令介绍 gpustat是一个基于Python的命令行工具&#xff0c;它提供了一种快速、简洁的方式来查看GPU的状态和使用情况它是nvidia-smi工具的一个封装&#xff0c;旨在以更友好和易于阅读的格式显示GPU信息。gpustat不仅显示基本的GPU状态&#xff08;如温度、GPU利用率和内存…