Java 开篇之 JDK 下载、安装、配置、卸载、运行及乱码处理

JDK 安装和配置

本文内容简介:

  • JDK 简介
  • JDK 正确卸载方式
  • JDK 下载和安装
  • 环境变量配置
  • 开发过程
  • 运行结果及乱码解决

JDK 简介

JDK(Java Development Kit)是 Java 语言的软件开发工具包,它是 Sun Microsystems(现已被 Oracle 公司收购)推出的一套用于支持 Java 程序员开发和编译 Java 应用程序的标准开发工具集合。JDK 包含了一系列工具和库,主要包括以下几个关键部分:

  1. javac:Java 编译器,用于将 Java 源代码编译为字节码(.class 文件)。

  2. java:Java 解释器或 Java 虚拟机(JVM),用于运行编译后的 Java 字节码。

  3. javadoc:文档生成工具,用于从源代码注释中生成 API 文档。

  4. jar:Java 归档工具,用于打包相关的类库文件和其他资源文件到一个 .jar 文件中。

  5. jdb:Java 调试器,用于调试 Java 应用程序。

  6. jps/jinfo/jstat/jmap/jhat/jstack:这些是一系列的 Java 工具,用于监控和诊断正在运行的 Java 应用程序。

  7. javap:Java 类文件反汇编器,可以查看编译后的 Java 字节码。

  8. JRE(Java Runtime Environment):Java 运行时环境,包含 JVM 和 Java 核心类库(rt.jar 等),是运行 Java 应用程序所必需的组件,JDK 包含完整的 JRE。

总之,JDK 是 Java 开发人员必备的工具箱,不仅提供了编译、运行 Java 程序所需的一切元素,还提供了许多辅助开发和维护 Java 应用程序的实用工具。

在学习 Java 之前首先要先安装 JDK ,JDK 版本很多,目前最新版本为 JDK21。

建议安装的版本为 JDK8、11、17、21 这几个长期维护的稳定版本。

JDK 卸载(可以跳过)

如果有其他版本需要卸载,一定要选择正确的卸载方式!!!

开始菜单 --- 设置 ---- 应用 ---- 找到要卸载的软件---点击--卸载即可

卸载完成后,注意删除安装目录

打开设置面板

在下面窗口中,选择要删除的应用软件

JDK 安装

首先官网下载:https://download.oracle.com/java/17/archive/jdk-17.0.10_windows-x64_bin.exe

然后直接默认下一步到底的 “傻瓜式” 安装即可

下一步之后,下面可以更换路径,也可以不更换

下一步后,安装最终界面:

配置环境变量

JDK 安装完成后,如何验证是否可以使用?

方法:

win+r 打开运行窗口

 

输入cmd 回车

 

输入查看版本命令 : java -version

如果下面效果,则表示没有配置环境变量:

需要配置变量

path ---- 指向的是 Java 安装目录下的bin目录

JAVA_HOME --- 指向的是 Java 安装目录

classpath --- 指向的是 Java 安装目录下的 lib 目录

配置 path 环境变量:

path(路径)环境变量是一个系统级的环境变量,它指定了操作系统在执行外部命令时搜索可执行文件(exe、bat、cmd 等)的目录列表。

当在命令提示符或 PowerShell 中输入一个命令但没有指定其完整路径时,Windows 会按照 Path 变量中列出的路径顺序依次查找该命令是否存在。

以win10为例:

我的电脑---右键---属性---打开控制面板中的高级系统设置窗口

然后点击下面的 环境变量 --- 确定

编辑用户变量中的 path

然后,到Java安装目录下复制 bin 目录,比如:

C:\Program Files\Java\jdk-17.0.2\bin ,添加到 path变量中

编辑环境变量---新建--粘贴---确定--完成

 

然后点击确定---下个窗口也是确定---确定

再次 win+R 进入 cdm 窗口,再次输入 java -version 来检查是否配置成功!

开发过程

编写源码(.java) --编译(javac) -- 字节码文件(.class) --运行(java)

编译型语言

 

新建 .txt 的文本文件,文件中输入下面代码

public class Test{public static void main(String[] a){System.out.println("Hello,我爱学Java!!  ");}
}

然后,另存为 Test.java 文件

会生成 Test.java 文件

执行过程

编写源文件(.java) -- 编译(javac)--字节码文件(.class) ---运行(java)

编译

在当前目录下,地址栏输入 cmd 回车,打开命令符窗口,输入下面命令来进行编译

javac Test.java ,如果编译成功则生成 Test.class 字节码文件

出现问题:

错误:找不到或无法加载主类 Test

原因:java.lang.ClassNotFoundException:Test

 

原因:因为classpath 配置问题,classpath 作用就是指定加载查找类的路径。

解决办法:配置classpath 添加一个 .;

说明:圆点表示的是当前目录,就是去找类 .class 可以在当前目录查找或 Java 安装目录下的 lib 下查找。

 

关闭之前命令符窗口,再次打开窗口

再次 javac Test.java 编译 ----- java Test 运行,看结果

注意:

从JDK 11开始,Java引入了用Java启动器,可以直接运行一个单文件的Java源代码,运行前不需要对源代码进行显式的编译。 原理很简单,Java启动器会自动调用编译器,并将编译好的字节码缓存在内存中。

这种运行方式简化了编码-编译-运行的繁琐环节

 

注意:如果乱码时,可以把源代码的文本文件另存为,切换编码为 ANSI 再次编译 运行即可解决

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

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

相关文章

【研发日记】C/C++开发避坑秘籍(一)——CAN接收Buffer溢出Bug

文章目录 背景介绍 问题描述 分析排查 解决方案 总结归纳 背景介绍 在一个嵌入式软件项目中,有一段使用C语言写的嵌入式代码,功能是把CAN总线上的几帧报文接收进来,并解析出数据。示例如下: 乍一看感觉挺简单,想着…

【算法】回溯与深搜

方法论 1.构建决策树 2.设计代码:全局变量、dfs函数 3.剪枝,回溯 全排列 给定一个不含重复数字的整数数组 nums ,返回其 所有可能的全排列 。可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出&#xff…

微软Microsoft Surface Go 2

1个小玩具 Microsoft Surface Go 2的评测结果出炉!它是目前最好的中端Windows 二合一笔记本平板。 外形简洁小巧,工作娱乐两不误。 它有多个版本。 我们测试的是配备8GB Ram和128GB SSD的Pentium 4425Y处理器(第8代)的型号。 S…

elementary OS7 Ubuntu 22.04中硬盘挂载报错

elementary OS7 Ubuntu 22.04中硬盘挂载报错 背景目标思路解决方法 背景 上周末安装elementaryos7的过程中将windows10的引导文件搞丢了,这两天准备修复一下,保险期间将固态硬盘上的文件备份到移动硬盘上,备份过程中出现报错的问题&#xff…

Axure RP 9 for Mac中文激活版:原型设计工具

Axure RP 9 for Mac是一款值得设计师信赖的原型设计工具。它以其卓越的性能和稳定的运行赢得了广大用户的赞誉。 软件下载:Axure RP 9 for Mac中文激活版下载 在Axure RP 9中,您可以尽情发挥自己的设计才华,创造出独一无二的原型作品。无论是…

电子电器架构 —— 诊断数据DTC起始篇(下)

电子电器架构 —— 诊断数据DTC起始篇(下) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再…

系统架构设计-构建系统应用

1. 系统架构目标与设计原则 在设计系统架构时,我们的目标是确保系统具有以下特点: 可靠性:系统能够持续稳定运行,保证业务可用性。可伸缩性:系统能够根据负载变化自动扩展或收缩,以应对不同的流量需求。容…

STM32通过串口发送指令控制LED灯亮灭OLED并显示命令

先来看看程序运行的结果吧: 接下来就不说废话了,自己看源代码吧!每一行我都做了注释: 首先是主函数main.c文件: #include "stm32f10x.h" // Device header #include "OLED.h" …

Python工具-清理Unity(批量深度)清理U3D项目工程保留关键工程文件

前沿 1. Unity工程越来越多,很久不用的工程里存在了很多无用的大文件夹,极大的影响电脑容量。 2. 我电脑里面U3D工程只有17个,但容量就高达60GB,使用自己编写的工具清理后,减到了30GB多。清理了不是很重要的文件和文件…

【CTA动画】制作全记录 笔记

3Dxchange的使用 让图片跳舞 导入:I:\安装包\#动画开发\test\跳舞 model(includeTPose).fbx 转成非标准角色 手动点击骨骼,然后点击人物骨骼,选择00_t-pose 绿灯了就可以转换了,记得启用。 上面的自定义可以先选择3DS 转换后…

Java数据结构-顺序表

目录 1. 顺序表的相关概念1.1 线性表1.2 顺序表2. 功能实现2.1 整体框架2.2 乱七八糟的功能(bushi)2.2.1 判断容量是否满2.2.2 返回顺序表当前长度2.2.3 扩容2.2.4 清空整个顺序表 2.3 插入数据2.3.1 头插数据2.3.2 尾插数据2.3.3 指定位置插入 2.4 删除数据2.4.1 删除第一次出…

微服务之Nacos配置管理

文章目录 前言一、统一配置管理Nacos操作二、统一配置管理java操作1.引入依赖2.创建配置文件3.测试4.总结 三、Nacos配置自动更新1.添加注解RefreshScope2.使用ConfigurationProperties注解3.总结 四、Nacos多环境配置共享1.配置文件2.多种配置的优先级3.总结 总结 前言 一、统…

leetcode 150.逆波兰表达式求值

题目 思路 逆波兰表达式也是经典的栈的应用问题。 先说什么是逆波兰表达式(也叫后缀表达式) 我们习惯的是这样的表达式:1 2 / 3 ,这也叫中缀表达式。 但是对于计算机来说不好理解,当从左扫描到 2 的时候还需要再判断2后面是什…

STM32 | Systick定时器(第四天源码解析)

STM32 | Systick定时器(第四天)STM32 | STM32F407ZE中断、按键、灯(续第三天)1、参考delay_us代码,完成delay_ms的程序 定时器频率换算单位:1GHZ=1000MHZ=1000 000KHZ = 1000 000 000HZ 定时器定时时间:计数个数/f(频率) 或者 (1/f(频率))*计数的个数 500/1MHZ = 500/1…

C++面向对象三大特征-----继承(详细版)

目录 继承 一、继承的基础介绍 普通版网页和继承版网页的区别 语法 二、继承方式 三种继承方式 三、继承中的对象模型 四、继承中构造和析构函数 五、继承同名成员的处理方式 访问同名成员: 作用域写法: 六、继承同名静态成员的处理方式 访问…

Qt播放音乐代码示例

主界面 点击play按钮播放或暂停音乐,拖动进度条,音乐对应播放。 QWidget window;QPushButton* playButton new QPushButton("Play");// Qt 播放音乐// 创建 QMediaPlayer 对象QMediaPlayer* player new QMediaPlayer;// 指定音频文件的路径…

MySQL B+树索引 和 Redis 中跳表索引的区别

一、MySQL B树索引 和 Redis 中跳表索引 在 MySQL 中常用的索引是 B树索引,而 Redis 中,例如 zset 使用的的是跳表索引,两者有什么区别呢,MySQL 为什么不使用 跳表 呢?或者说 Redis 中为什么不使用 B树 呢&#xff1f…

章节10实验--Ubuntu18.04 Qt MySQL libqsqlmysql.so

前言: 内容参考《操作系统实践-基于Linux应用与内核编程》一书的示例代码和教材内容,所做的读书笔记。本文记录再这里按照书中示例做一遍代码编程实践加深对操作系统的理解。 引用: 《操作系统实践-基于Linux应用与内核编程》 作者:房胜、李旭健、黄…

golang 对接第三方接口 RSA 做签(加密) 验签(解密)

一、过程 1.调用第三方接口前,一般需要按规则将参数按key1value1&key2value2 阿斯克码排序,sign参数不参与加密 2.将排序并连接好的参数字符串通过我方的私钥证书(.pem)进行加密得到加密串,当然加密得到的是 []byte 字节流&…

看完就等于拿捏浮点数在内存中的储存了

诸君又该学习了,今天我们继续来一睹浮点数的奥妙真容。 经过前面文章对整形提升相关的解释,我们都对整形和字符在内存空间上的储存已经有了大概的认知,那么现在我们就来好好讲讲浮点数在内存中的储存规则。 目录 浮点数与整形储存的不同 …