[老白学 java] - 工欲善其事,必先利其器
最近很闲,于是我瞄上了 Java。 女儿苦苦劝我趁早放弃… 最终她放弃了,却彻底激发了我的学习热情! 本着「不撞南墙撞北墙」的无畏精神,重新装备上我的老搭档 “SONY FZ-15”,毅然决然的开启了 Java 修炼之旅。
郑重声明:本人新入坑的老白,如果文中有不规范的用词,恳请您狠狠地提出!
JDK、JRE 和 JVM 都是啥?
做了一小时功课,大致了解了 Java 程序是如何运行的。 我把这个过程分为四步:
- 使用文本编辑器编写 .java 源文件;
- JDK(Java Development Kit)编译源代码,生成 .class 字节码文件;
- JRE(Java Runtime Environment)提供核心类库辅助 JVM;
- JVM(Java Virtual Machine)负责解释、执行字节码。
解释一下这几个专有名词:
- JDK - Java 语言开发工具包,它是 Java 程序开发的核心部分,其中包含了 JRE。
- JRE - Java 运行环境,提供了运行程序所需的全部组件,包括 JVM、核心类库以及支持文件。
- JVM - Java 虚拟机,一个微型操作系统,有自己的指令集,负责解释、执行 .class 字节码文件。
理顺相互关系后,开始着手搭建开发环境。 第一步先下载 JDK。
下载、安装 JDK
- 官网下载:https://www.oracle.com/
参照以下步骤从官网下载适合你的 JDK,或者去正规网站直接下载。
- 下载结束后,双击文件开始安装 JDK
配置 JDK
JDK 安装完成后,还不能立即使用。 如果打开 JDK 安装目录中的 bin 文件夹,可以找到 javac.exe、java.exe 这样的应用,这是 Java 开发中的两个重要工具,用于编译和执行 Java 程序。 bin 文件夹还提供了诸如调试、打包等许多其它开发工具,为了让 Windows 可以顺利找到它们,需要提前配置路径。
鼠标右键桌面计算机图标,选择属性->高级系统设置,显示系统属性面板:
点击环境变量按钮,显示环境变量面板:
环境变量面板中可以配置两种变量,用户变量和系统变量。 区别在于用户变量针对当前登录用户生效,而系统变量针对所有用户生效。 新建按钮可以创建一个新变量,编辑按钮可以修改已经存在的变量,删除按钮可以删除一个变量(请谨慎操作)。 接下来分别对三个系统变量进行配置:
- 新建->变量名: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 组件路径(注意前面的分号)。
测试开发环境
是时候检验自己的劳动成果了! 启动 CMD(命令行窗口),输入 java -version
:
如果出现了类似信息,说明开发环境配置正确。 我们试着写个小程序测试一下,先向世界打个招呼吧!
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
编译源文件:
编译成功后,CMD 不会给出任何提示,不过返回桌面会发现多出了一个 MyFirstApp.clss 文件,这就是刚刚编译生成的字节码文件。
试着使用 java
命令执行程序:
可以看到我在上面共执行了两次 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
命令选项即可正常显示中字。