【Java基础教程】(二)入门介绍篇 · 下:从JDK下载安装到第一个“Hello World!”程序,解析PATH和CLASSPATH环境变量的妙用~

news2024/11/24 17:36:02

Java基础教程之入门介绍 · 下

  • 本节学习目标
  • 1️⃣ JDK安装与配置
  • 2️⃣ 第一个Java程序:“Hello World!”
  • 3️⃣ 环境变量 CLASSPATH
  • 🌾 总结

在这里插入图片描述

本节学习目标

  • JDK 安装与配置;
  • 理解环境变量PATH和CLASSPATH的主要作用;
  • 运行第一个Java程序。

1️⃣ JDK安装与配置

要进行Java的程序开发,必须先有Java开发工具包(JavaDevelopmentKit,JDK)的支持。本节主要基于JDK1.8版本来介绍安装等知识,读者朋友可以直接登录 Oracle官网 去进行下载,也可以在下边链接(包含了JDK8、11、12版本的安装包)进行资源的快速下载。

–来自百度网盘超级会员V3的分享
链接:https://pan.baidu.com/s/1zmvhQDHP3DhFvxoBWzVhRg
提取码:ubl9
在这里插入图片描述

若链接失效,也可以访问CSDN资源使用积分下载:
JDK-12安装包
JDK-11安装包
JDK-8安装包
JDK-7安装包

下载好后开始安装,在安装时会提示用户选择JDK的安装目录(如图1),本节将其安装在D:\MyApp\Java\jdk11.0.4\目录下,随后会使用此目录配置系统环境变量属性。

但安装JDK时,通常是建议将其安装在C盘或系统所在的磁盘上。这是因为JDK是一个核心开发工具,它包含许多重要的系统文件和配置信息,与操作系统和其他软件紧密关联。将JDK安装在C盘能够确保其与系统的正常运行相互配合。

而另一方面,选择其他盘安装JDK也是可行的。如果你的C盘空间有限或你更喜欢将系统文件和应用程序分散到不同的盘符中,你可以选择将JDK安装在其他盘上。在选择其他盘安装JDK时,需要确保该盘有足够的可用空间,并且注意设置正确的环境变量和路径,以确保系统能够正确地找到JDK并使用它。

图1 JDK安装过程

当JDK安装完成后,会出现图2所示页面。

图2 JDK安装完成

此时,我们需要对一些操作命令进行配置。对于Java程序开发而言,主要是会使用JDK的“javac.exe”、“java.exe”两个操作命令。这两个命令所在的路径为:“D:\MyApp\Java\jdk11.0.4\bin”。由于这两个命令不属于Windows,所以要想使用,就需要进行路径配置,主要是配置PATH环境属性,操作步骤如下。

  1. 选择“此电脑”(老版本也叫“计算机”),右击弹出子菜单后,单击“属性”选项,系统会出现设置界面,然后单击打开“系统高级设置”(如图3所示),会弹出“系统属性”面板;

  2. 在“系统属性”面板中,选择“高级”选项卡,然后选择“环境变量”操作,就会进入到“环境变量”对话框,而后找到“系统变量”中的“Path”配置,选择“编辑”进入到编辑环境变量的页面(如图4所示);

  3. 在“编辑环境变量”操作面板,将JDK的安装路径的bin 目录路径配置到“Path”属性中,不同的“Path”之间使用“;”分隔,配置完成后点击“确定”按钮并逐层返回。我这里采用了先将JDK安装目录设置为“JAVA_HOME”,再在“Path”里引用它的方式来设置变量:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(如图5所示);

  4. 配置成功后,启动命令行方式(在“运行”界面输入“cmd”,或者直接使用组合键“Alt+R”),输入:java -version,能够看到正确的JDK版本输出信息即表示安装成功(如图6所示)。

图3 设置环境变量PATH:步骤1

图4 设置环境变量PATH:步骤2

图5 设置环境变量PATH:步骤3

图6 查看JDK是否成功安装

2️⃣ 第一个Java程序:“Hello World!”

定义一个新的文件 HelloWorld.java

public class HelloWorld{
	//定义一个类
	public static void main(String args[]){
		//主方法,一切程序的起点
		System.out.println("Hello World!");	//在屏幕上打印输出
	}
}

需要注意的是文件名称后缀必须是*.java。若发现在编译时找不到文件,那么可能是因为计算机隐藏了已知的文件扩展名称,此时可以在命令行方式先使用dir命令查看详细文件列表。

*.java程序编写完成后,就可以按照如下步骤进行程序执行:

  1. 编译程序,通过命令行进入程序所在的路径,执行命令 javac HelloWorld.java,生成 “HelloWorld.class” 字节码文件;
  2. 解释执行程序,将生成的HelloWorld.class 在JVM上执行,执行命令:java HelloWorld(如图7)。
图7 编译和执行程序

下面对案例程序的组成分别进行说明:

  1. 关于类的定义。类是Java中的基本组成元素,而所有的Java程序一定要被类管理,定义类的简单格式如下:
    [public] class 类名称{}
    
    在类前面可以有选择性地决定是否需要 public,而有public和没有public修饰的类分别有各自不同的特征。所以对于类的定义有以下两种形式:
    • public class 定义的类:类名称必须和文件名称保持一致,否则程序将无法编译,并且 在一个*.java中只能有一个public class 定义的类;
    • class定义的类:类名称可以和文件名称不一致,在一个*.java程序中可以同时存在多个 class定义的类,编译之后会生成不同的*.class文件。
图8 public class和 class定义类的区别

在类的命名规范中,所有类名称必须有自己的命名规范,即每一个单词的开头首字母大写,例如: TestDemoMyClass 等。

需要注意的是,虽然在一个 *.java程序之中可以同时存在 public classclass定义的类,但在实际生产应用编写的代码过程中,一个*.java文件中基本上都只包含一个public class的类,不会有其他class单独定义,因为这样代码更清晰简洁。

  1. 主方法main() 方法也叫主方法,表示的是一个程序起点,所有的程序代码都由此开始顺序执行,在Java中主方法要放在一个类中,其定义格式如下:

    public static void main(String args[]){ 
    	//编写程序代码;
    }
    

    通过程序可以发现有很多固定单词,比如 staticvoidmain,这些固定的在Java语言中有对应特殊含义和作用的单词叫做“关键字”或者“保留字”。此处可以暂时先将其记下,之后的章节会进行完整的详细的介绍。

  2. 系统打印输出:在案例中,主方法只定义了一个“System.out.println(“HelloWorld!”)”语句,此语句的功能是直接在屏幕上显示输出信息,对于打印输出的操作有如下两种语法。

    // 输出后加换行
    System.out.println("输出内容");
    // 输出后不加换行
    System.out.print("输出内容");
    

需要注意的是语句使用“;”完结。在Java中每一个完整的语句代码,例如:“System.out.println("HelloWorld!")”语句是一个完整的语句代码,都要求使用“;”进行结尾。

3️⃣ 环境变量 CLASSPATH

可以发现,如果想要执行某一个Java程序(执行的是*.class文件),那么一定要进入到程序所在的路径下才可以执行,例如:程序的路径是在 C:\Users\86182\Desktop 文件夹中,如果想要执行这个文件夹中的 *.class文件,则需要进入到此目录下来执行。而如果现在希望在不同的目录下(例如在D盘目录下)也可以执行 C:\Users\86182\Desktop 目录下的程序,默认情况下系统会直接提示用户异常信息:找不到这个类(如图9)。

图9 在不同目录下执行会报错

如果想要解决在不同路径下访问指定目录类的问题,则可以通过配置CLASSPATH环境变量来解决,其配置语法如下。

SET CLASSPATH=*.class文件所在的路径

比如现在将CLASSPATH配置到C:\Users\86182\Desktop 目录中。先执行 SET CLASSPATH=C:\Users\86182\Desktop ,然后再次执行“java HelloWorld”命令,会发现程序可以正常执行完毕(如图10)。

图10 设置CLASSPATH后再执行则成功

CLASSPATH主要指的是类的运行路径,实际上在用户执行Java命令的时候,对于本地的操作系统来说就意味着启动了一个JVM,JVM在运行时需要通过CLASSPATH加载所需要的类。而默认情况下CLASSPATH是指向当前目录(当前命令行窗口所在的目录)中的类,当改变之后JVM才会从用户指定的目录下进行类的加载。

但是,如果从易用性的角度来考虑,像案例这样任意指定CLASSPATH是不可取的,最好的做法是从当前所在的路径下加载所需要的*.class文件,这个时候往往要将CLASSPATH设置为“.”,即 SET CLASSPATH=.

而以上配置方式都只是针对于一个命令行完成的,如果要针对于所有的命令行方式完成,则需要增加一个新的环境属性,操作步骤如下:

  1. 选择“此电脑”,单击“属性”,进入“高级”选项卡,找到“环境变量”,单击“新建”按钮,新建用户变量
  2. 输入要新建的属性名称和内容,名称为“CLASSPATH”,内容为“.”。

主要步骤和上文设置“Path”环境变量基本一致,唯一的不同是设置“CLASSPATH”时是用户变量而非系统变量。

总的对比来说,PATH是设置系统变量,即是操作系统的环境属性,指的是可以执行命令的程序路径;
CLASSPATH是用户变量,是所有*.class文件的执行路径,Java命令执行时将利用此路径加载所需要的*.class文件。


🌾 总结

本文详细介绍了JDK的安装与配置、编写及运行第一个Java程序、环境变量PATH以及CLASSPATH的配置与作用。通过学习这些关键概念,读者朋友们即可开始在Java编程领域的旅程。

首先,我们详细介绍了如何下载以及安装JDK的过程,并正确配置 PATH环境变量,以确保JDK与操作系统和其他软件的正常配合。

而后演示了如何创建并编写第一个Java程序:“Hello World!”。通过这个简单的入门程序让读者体验到Java的基本语法和开发过程。它是每个Java初学者踏入编程世界的必经之路。

最后,我们介绍了环境变量CLASSPATH的作用及与PATH的区别,它用于指定Java编译器和运行时查找类文件的路径。正确设置CLASSPATH可以确保Java程序能够找到所需的类库和其他依赖项,从而顺利运行。

通过本文的学习,读者已经具备了基础的Java开发环境和知识印象。随着深入学习和实践,我们将进一步探索更多Java编程的精彩领域。不断提升技能,继续学习和实践是成为优秀Java开发者的关键。

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

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

相关文章

Spark(11):RDD持久化

目录 0. 相关文章链接 1. RDD Cache 缓存 2. RDD CheckPoint 检查点 3. 缓存和检查点区别 0. 相关文章链接 Spark文章汇总 1. RDD Cache 缓存 RDD 通过 Cache 或者 Persist 方法将前面的计算结果缓存,默认情况下会把数据以缓存在 JVM 的堆内存中。但是并不是这…

关于Spring Boot的若干个重要问题

Spring Boot 1.什么是springboot 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 创建独立的spring引用程序 main方法运行 嵌入的Tomcat 无需部署war文件 简化maven配置 自动配置spring添加对应功能starter…

nodejs-pm2管理js并发/自动重启/恢复等

目录 一、nodejs安装二、启动运行js三、实用功能1-pm2对进程名起别名四、实用功能2-pm2启动多个进程五、实用功能3-pm2内存限制自动重启六、实用功能4-服务器宕机前保存记录恢复进程 一、nodejs安装 nodejs安装使用nohup后台启动项目,倒是解决了控制台问题&#xf…

用Python从文件中读取学生成绩,并计算最高分/最低分/平均分

目录标题 前言环境使用:涉及知识点代码展示尾语 前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 今天咱们试试用Python从文件中读取学生成绩,并计算最高分/最低分/平均分。 环境使用: Python 3.8 解释器 Pycharm 编辑器 涉及知识点 文件读写 基础语法 字…

QQ邮箱第三方POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务授权码

参考QQ邮箱: 什么是授权码,它又是如何设置? 设置入口: 选择 账户 下拉找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务就好了。我这边已经开通,开通流程挺简单的,手机号绑定然后输入验证码就好了。

华安联大:基于北斗RTK+蓝牙AOA、UWB定位技术为智慧港口提供多元化解决方案

深圳华安联大创新科技有限公司的商场室内导航系统方案,解决传统购物中心用户体验差的缺点,可实现3大类功能应用: (1)实现顾客在商场内自主导航,室内位置实时分享,目的地商铺自主导航,路径规划等功能: (2)停车场反向寻…

CISA在三星和D-Link设备中发现8个被积极利用的漏洞

美国网络安全和基础设施安全局(CISA)根据已有的证据,将8个被积极利用的漏洞列入已知的漏洞(KEV)目录中。 这8个被积极利用的漏洞包括影响三星智能手机的六个漏洞和影响D-Link设备的两个漏洞。以下是这八个漏洞&#x…

Java jsp 实战

1.JSP执行过程(原理) 步骤1:翻译(jsp-->java) 步骤2:编译(java-->class文件) 步骤3:执行(执行class(字节码)文件) 2.JSP实战 步骤1&…

UE4中创建的瞄准偏移或者混合空间无法拖入动画

UE4系列文章目录 文章目录 UE4系列文章目录前言一、解决办法 前言 UE4 AimOffset(瞄准偏移)动画融合时,AimOffse动画拖入不了融合框的解决办法,你会发现动画无法拖入到融合框,ue4编辑器提示“Invalid Additive animation Type”,…

Android Studio最新好用的插件----Gson转Java实体类/Kotlin Data

1.Java 安装好插件之后,把Gson/Json数据复制一下,eg: { "Chrome": "UA-66061856-6", "ChromePro": "UA-66061856-9", "Opera": "UA-66061856-7", "Edge": "UA-66061856-8&q…

K8s 为什么要弃用 Docker

K8s 为什么要弃用 Docker 最近在学习容器技术的过程中,看到有关于Kubernetes“弃用 Docker”的事情,担心现在学 Docker 是否还有价值,是否现在就应该切换到 containerd 或者是其他 runtime。 随着深入了解,这些疑虑的确是有些道理…

python实现语音识别(讯飞开放平台)

文章目录 讯飞平台使用python实现讯飞接口的语音识别第一步:导入需要的依赖库第二步:初始化讯飞接口对象第三步:收到websocket建立连接后的处理函数第四步:收到websocket消息的处理函数第五步:整合运行各函数 讯飞平台…

linux内核TCP源码浅析

目录 数据接收流程驱动层网络层ip_local_deliverip_local_deliver_finish 传输层tcp_v4_rcvtcp_v4_do_rcvtcp_rcv_establishedtcp_recvmsg linux内核源码下载:https://cdn.kernel.org/pub/linux/kernel/ 我下载的是:linux-5.11.1.tar.gz 数据接收流程 …

服务器数据库被360后缀勒索病毒攻击怎么办?360勒索病毒的加密形式

近日,我们收到很多企业的求助,企业服务器内的多种数据库被.360后缀的勒索病毒加密,导致企业许多工作无法正常运转,也给企业带来了严重的经济损失。360后缀勒索病毒是一种恶意软件,它属于BeijingCrypt勒索病毒家族&…

Server - 通过 AutoSSH 建立服务器端口转发用于访问网页

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131536508 AutoSSH 是一款用于创建和维护持久的SSH隧道的工具,可以自动检测和恢复断开的连接,从而保证隧道的稳定性。Auto…

VS2022集成代码规范组件StyleCop.Analyzers应用于解决方案

背景 项目团队刚刚组件,每个人的代码编写习惯都不一样,希望用一款代码规范的检查插件来规范团队成员编写代码的习惯,在网上找了一遍之后,感觉StyleCop.Analyzers比较适用。 集成方法 1.NuGet搜索StyleCop.Analyzers进行安装到指…

docker-compose启动redis:Can‘t open the append-only file: permission deined

一、问题 docker-compose启动redis:Can‘t open the append-only file: permission deined //1-进入docker文件夹下 cd /docker//2-使用docker-comopse启动Mysql和redis docker-compose up -d mysql redisCan‘t open the append-only file: permission deined这里…

教你实现图片的点击缩放和移动

教你实现图片的点击缩放和移动 为了方案的通用性&#xff0c;这回使用基本的htmljs进行操作&#xff0c;vue和react使用方法类似&#xff0c;几乎不需要进行什么语法转换操作&#xff0c;注意一下点击事件在自己框架里的写法即可 随便来写一个简单的页面&#xff1a; <ht…

如何在Windows 10和Linux上安装nvm

在Windows 10上安装nvm&#xff1a; 访问nvm的GitHub页面&#xff08;https://github.com/coreybutler/nvm-windows/releases &#xff09;&#xff0c;下载最新的安装程序。运行下载的安装程序&#xff0c;按照提示进行安装。选择合适的安装路径。完成安装后&#xff0c;打开…

你对未来Android 车载开发市场怎么看?

前阵子看到一个新闻说&#xff1a;“中国进口车销量创10年来新低 “产业变革效应”正在显现”&#xff0c;于是我的好奇心让我点开看了一下 原来是国产的新能源汽车的崛起&#xff0c;受到了不少国内外客户的欢迎&#xff0c;使得订单量暴涨&#xff0c;出口的数量反超进口车数…