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

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.hqwc.cn/news/8163.html

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

相关文章

TypeScript 自定义装饰器

(预测未来最好的方法就是把它创造出来——尼葛洛庞帝) 装饰器 装饰器一种更现代的代码模式,通过使用的形式注入在属性,寄存器,方法,方法参数和类中,比如在Angular,Nestjs和midway等…

E类变换器仿真

1 参数计算(待续) (1)确定振荡频率: (2)计算各器件参数; 2 电路仿真 (1)电路图 (2)电路分析 3 结果 (1)…

微信小程序+SpringBoot接入后台服务,接口数据来自后端

前言 前两天开发了一个微信小程序项目,只不过接口数据是自己设置的假数据。然后我就想将这些假数据替换掉。这些数据来自接口,之前做过前后端分离的项目,我就想能不能直接调用那些后端数据接口。结果是可以的。以下是自己编写的部分方法 步骤…

【IDE 小程序】小程序控制台 不打印 console.log问题

小程序控制台 不打印 console.log问题 全局搜索compress.drop_console(一般在config文件中),设置为false,再重新打开小程序即可

【JUC-7】ReentrantLock (可重入锁)基础

ReentrantLock (可重入锁) ReentrantLock实现了Lock接口, 内部通过继承AQS, 实现了一个同步器. 可以通过同步器来创建Condition条件变量, 可以用作容器, 存放不同条件的等待线程. 说明ReentrantLock与AQS的关系 类图: 相对于synchronized, 都支持可重入. 它还具备如下特点: …

对弈人工智能!myCobot 280开源六轴机械臂Connect 4 四子棋对弈

Connect 4 myCobot280 Introduction Hi,guys.今天我们来介绍一下人工智能下棋,我们将用机械臂来作为对手跟你进行下棋。 人工智能下棋的研究可以追溯到20世纪50年代。当时,计算机科学家开始探索如何编写程序,使计算机能够下象棋。其中最著…

Linux 解决root用户被限制连接服务器

Linux 解决root用户被限制连接服务器 1. 问题描述2. 解决问题2.1 方式一(忘记root密码的情况)2.2 方式二(知道root密码的情况) 3. 其他 1. 问题描述 使用 root 用户不能链接服务器,密码对,就是连接不上&am…

VBA之正则表达式(42)-- 快速提取名称

实例需求:A列为待处理数据,现需要从中提取商品名、通用名、胰岛素笔相关信息,保存到B列至D列,需要注意如下几点: 胰岛素笔(E列)数据只存在于每组产品的第一行记录中,例如第2行数据中…

Apikit 自学日记:保存、使用测试用例

API测试用例是SaaS版本企业版才能使用的功能,免费版用户可通过付费升级后使用。 API管理应用中的测试用例管理涉及到两个场景:单接口测试用例管理 和 多接口测试用例批量测试。 一、单接口测试用例管理 功能入口:API管理应用 / 选中某个项目…

vscode copilot长时间没反应

检测问题 首先看一下OUPUT插件信息有什么异常 如果没有异常,但是也没输出 那是请求没有相应的原因 可以在vscode里设置一下代理 参考:https://github.com/orgs/community/discussions/29127

ArcPy学习心得系列(5)遥感数据中值滤波与均值滤波实现方法(不计入NoDATA)

在数据处理与应用的过程中,我们难免会遇到一些低质量的遥感数据,低质量遥感数据一般是由于天气因素导致的,在云量较多时,卫星传感器所采集到的地面信息被云层所遮挡,导致遥感图像成像过程中产生了较多噪声,对遥感数据的精确度造成了一定影响,如果不解决这些数据中的噪声…

【UE5 Cesium】05-Cesium for Unreal 在子关卡中添加Actor

上一篇:【UE5 Cesium】04-Cesium for Unreal 将不同地区的倾斜摄影作为不同子关卡 步骤 首先将关卡切换到“DenverRooftop” 添加一个“立方体” 将关卡切换到“Globe” 然后再向场景中添加一个“椎体” 此时如果我们将关卡切换到“Boston”,只能看到“…