首页 > 编程语言 >老白学 Java - 工欲善其事,必先利其器

老白学 Java - 工欲善其事,必先利其器

时间:2024-10-26 10:20:22浏览次数:1  
标签:文件 MyFirstApp Java JDK 必先利其器 工欲善其事 JVM java

[老白学 java] - 工欲善其事,必先利其器

image

最近很闲,于是我瞄上了 Java。 女儿苦苦劝我趁早放弃... 最终她放弃了,却彻底激发了我的学习热情! 本着「不撞南墙撞北墙」的无畏精神,重新装备上我的老搭档 "SONY FZ-15",毅然决然的开启了 Java 修炼之旅。

郑重声明:本人新入坑的老白,如果文中有不规范的用词,恳请您狠狠地提出!

JDK、JRE 和 JVM 都是啥?

做了一小时功课,大致了解了 Java 程序是如何运行的。 我把这个过程分为四步:

  1. 使用文本编辑器编写 .java 源文件;
  2. JDK(Java Development Kit)编译源代码,生成 .class 字节码文件;
  3. JRE(Java Runtime Environment)提供核心类库辅助 JVM;
  4. JVM(Java Virtual Machine)负责解释、执行字节码。

解释一下这几个专有名词:

  • JDK - Java 语言开发工具包,它是 Java 程序开发的核心部分,其中包含了 JRE。
  • JRE - Java 运行环境,提供了运行程序所需的全部组件,包括 JVM、核心类库以及支持文件。
  • JVM - Java 虚拟机,一个微型操作系统,有自己的指令集,负责解释、执行 .class 字节码文件。

理顺相互关系后,开始着手搭建开发环境。 第一步先下载 JDK。

下载、安装 JDK

  1. 官网下载:https://www.oracle.com/
    参照以下步骤从官网下载适合你的 JDK,或者去正规网站直接下载。

image
image
image
image
image

  1. 下载结束后,双击文件开始安装 JDK

image
image
image
image
image
image
image
image

配置 JDK

JDK 安装完成后,还不能立即使用。 如果打开 JDK 安装目录中的 bin 文件夹,可以找到 javac.exe、java.exe 这样的应用,这是 Java 开发中的两个重要工具,用于编译和执行 Java 程序。 bin 文件夹还提供了诸如调试、打包等许多其它开发工具,为了让 Windows 可以顺利找到它们,需要提前配置路径。

鼠标右键桌面计算机图标,选择属性->高级系统设置,显示系统属性面板:

image

点击环境变量按钮,显示环境变量面板:

image

环境变量面板中可以配置两种变量,用户变量系统变量。 区别在于用户变量针对当前登录用户生效,而系统变量针对所有用户生效。 新建按钮可以创建一个新变量,编辑按钮可以修改已经存在的变量,删除按钮可以删除一个变量(请谨慎操作)。 接下来分别对三个系统变量进行配置:

  • 新建->变量名:JAVA_HOME,变量值 D:\Java\jdk-9,用于设置 JDK 根路径;
  • 新建->变量名:CLASSPATH,变量值 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar,用于设置 Java 基础类库路径(注意前面的点和分号);
  • 编辑->变量名:Path,在原有变量值后面加入新值 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,用于设置 JDK 开发工具包和 JVM 组件路径(注意前面的分号)。

image
image
image

测试开发环境

是时候检验自己的劳动成果了! 启动 CMD(命令行窗口),输入 java -version
image

如果出现了类似信息,说明开发环境配置正确。 我们试着写个小程序测试一下,先向世界打个招呼吧!

public class MyFirstApp {
	public static void main (String[] args) {
		System.out.println("你好,Java");
	}
}

桌面上新建一个名为 MyFirstApp 的 txt 文件,输入以上内容。 检查无误后,文件另存为 MyFirstApp.java。 这时桌面上应该有两个同名的 MyFirstApp 文件,分别是 .txt 文件和 .java 文件,后者就是我们接下来要编译的源文件。

注意,当前使用的是 Windows 自带的笔记本应用,没有语法检查功能,而 Java 对大小写敏感,小心输入不要拼错单词。 为了便于日后编写代码,建议下载专业的代码编辑器,比如 Visual Studio Code、Sublim Text 等都很不错,具备完善的语法提示、语法高亮等功能,而且轻快好用。

好了继续,先 cd 到 Desktop 桌面目录,然后使用 javac 编译源文件:
image

编译成功后,CMD 不会给出任何提示,不过返回桌面会发现多出了一个 MyFirstApp.clss 文件,这就是刚刚编译生成的字节码文件。

试着使用 java 命令执行程序:
image

可以看到我在上面共执行了两次 java 命令,第一次没有正常显示中字,而第二次加入命令选项 -Dfile.encoding=utf-8 后可以正常显示了。 这是因为 Windows 自带的笔记本应用和 CMD 编码格式不同所致。

OK,全部搞定! 暂时放缓一下心情,愉快地玩耍吧!

补充:可能会出现的问题

1、使用 javac 命令,显示'javac'不是内部或外部命令...

可能没有安装 JDK 开发工具或者环境变量配置错误,请重新检查你的配置然后再试。

2、无法另存为 "MyFirstApp.java" 格式的源文件

可能是 Windows 隐藏了文件扩展名,所以看到了一个"假"名字,实际文件名可能是 "MyFirstApp.java.txt",仍然是一个 txt 格式的文本文件! 解决的方法很简单,鼠标点击资源浏览器菜单中的工具->文件夹选项->查看,去掉隐藏已知文件类型的扩展名复选框的对勾,然后确定。 重新检查文件,另存为正确格式就可以正常编译了。

3、控制台程序中文显示乱码

上文已经提到类似问题,Windows 笔记本应用的字符编码格式与命令行窗口的编码格式不一致,导致命令行窗口无法正确解析。 解决的方法就是每次执行 java 命令时,加入 -Dfile.encoding=utf-8 命令选项即可正常显示中字。

标签:文件,MyFirstApp,Java,JDK,必先利其器,工欲善其事,JVM,java
From: https://www.cnblogs.com/liujunapp/p/18496349

相关文章

  • java计算机毕业设计4S店客户关系管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在当今竞争激烈的汽车销售与服务市场中,4S店面临着诸多挑战。随着汽车行业的发展,消费者对于汽车购买和售后服务的期望不断提高,市场上的汽车品牌和......
  • java计算机毕业设计核酸检测管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在新冠疫情爆发后,核酸检测成为疫情防控的关键环节。传统的核酸检测管理多依赖人工操作,如人工记录检测者信息、检测结果等,这种方式效率低下且容易......
  • JAVA开源项目 基于Vue和SpringBoot在线文档管理系统
    本文项目编号T038,文末自助获取源码\color{red}{T038,文末自助获取源码}......
  • java计算机毕业设计车辆进销存管理(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着汽车行业的蓬勃发展,车辆的销售、库存管理等环节变得日益复杂。传统的人工管理方式在面对大量的车辆进销存数据时,效率低下且容易出错。例如,在......
  • java计算机毕业设计航空公司货运管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在当今全球化的时代,航空货运在国际贸易和物流运输中扮演着极为关键的角色。随着国家经济转型与制造业的稳步升级,国民生活水平大幅提高,航空货运需......
  • 【Web前端】JavaScript 对象基础
     JavaScript是一种以对象为基础的编程语言,操作数据时,实际都是在处理对象。可以使用简单的数据类型(如字符串、数字和布尔值)来实现一些功能,但深入了解JavaScript对象的运作,将使你能够编写更强大和灵活的代码。对象基础JavaScript中,对象是由一组键(或属性)和值组成的无......
  • [java毕业设计]免费分享一套SpringBoot+Vue宠物商城网站系统【论文+源码+SQL脚本】,帅
    大家好,我是java1234_小锋老师,看到一个不错的SpringBoot++Vue宠物商城网站系统,分享下哈。项目视频演示【免费】SpringBoot+Vue宠物商城网站系统Java毕业设计_哔哩哔哩_bilibili项目介绍本论文旨在设计与实现一个基于SpringBoot和Vue.js的宠物商城网站系统。随着互联网技......
  • 验证码图像处理(JavaScript 版)
    图像处理在现代网页应用中扮演着重要角色,常用于图像分析和用户交互。本文将使用JavaScript和HTML5Canvas实现一些基本的图像处理操作,包括灰度转换、去除边框、提取有效区域和图像分割。环境准备首先,确保你有一个基本的HTML文件,其中包含一个Canvas元素。以下是示例结构:......
  • JavaScript 的设计优点是什么
    JavaScript作为一种广泛应用于网页开发的脚本语言,具有许多设计优点,包括:1.跨平台性;2.事件驱动和异步编程;3.灵活的语法和动态类型;4.强大的框架和库支持;5.全栈开发能力;6.开源社区和资源;7.适应性和可扩展性。JavaScript的一个主要优点是其跨平台性,这使它可在多种浏览器和操作......
  • Java 和 C# 最大的不同是什么
    Java与C#均为高级编程语言,轮廓上有共性,但细节处昭然分歧。Java的跨平台性比C#更强,通过JVM实现在多种操作系统上运行。C#则深度整合于Microsoft平台,尽管.NETCore的推进扩展了它在非Windows环境的运作能力。接轴详述Java的跨平台特性,该特性来源于”一次编写,到处运行”的理念。Java......