白首齐眉网

javac 和 java 命令

javac 和 java 命令

一个 Java 程序的命令编译、运行的命令流程

  • Java 程序
  • javac 命令
  • java 命令
  • 流程
  • 注意
  • 总结

Java 程序

我们创建一个 " .java " 文件。
并在文件中写入下面的命令代码,一个 Student 类,命令一个 Hello 类。命令

如何创建一个 " .java " 文件 ?
很简单,命令先创建一个 " .txt " 的命令文本文档,然后往里面写入代码,命令再将后缀改为 " .java " 即可。命令这里应该注意:文件名需要与代码中的命令 public class 类的类名要相同。

1-1

javac 命令

命令格式:

javac  ".java 文件 "

在 " Hello.java " 文件存在的命令目录中,通过 Powershell 或 cmd 打开。命令

先说 Powershell,命令打开方式:【Shift】+ 鼠标右键。命令

如下图所示:

1-2

如下图所示,命令通过 javac 命令后,可以看到,刚刚的 " .java " 文件下的目录,出现了两个 " .class " 文件。而这个由 " .java " 到 " .class " 的过程,我们称之为 " 编译 ".

可以看到 javac 命令,编译是通过按类来的,代码中有几个类,编译出来的文件就有几个 " .class ".

1-3

cmd 窗口我就不演示了,其实是一样的。打开方式:【Win】+ 【R】,输入 CMD.
只不过 cmd 窗口需要通过 cd 命令来切换 " 当前目录 ".

如下图所示:

1-4

java 命令

命令格式:

java 类名

java 命令就是用来运行刚刚生成的 " .class " 文件的,我们需要运行哪个类,就 java 哪个类,可以看到,运行后的结果和我们平时在 " IDEA 终端 " 效果差不多。

1-5

流程

Java 程序就是我们平时写的 Java 代码,计算机将我们的 Java 代码以 " .java " 文件的格式保存至磁盘上。

Java 字节码文件实际上就是一个经编译后的 " .class " 文件,里面的数据都是二进制,当我们通过记事本打开的时候,可以发现是乱码。

JVM 拿到 " .class " 文件,就可以进行执行其中的字节码。这一步骤称为 " 运行 ",通过 java 命令 来操作。

1-6

注意

JDK:Java 开发工具包( Java Developer’s Kit )
JRE:Java 运行环境( Java Runtime Environment )
JVM:Java 虚拟机( Java Virtual Machine )

因为我们编写的 Java 代码最终是在 JVM 上运行的,所以才屏蔽了 " 操作系统的差异性 "。然而,光有 JVM 自己,什么也干不了,你需要给它提供生产原料 " .class文件 "。仅仅是 JVM,是无法完成一次编译,处处运行的。它需要一个基本的类库,比如怎么操作文件、怎么连接网络等等。JVM 标准加上一大堆基础类库,就组成了 Java 的运行时环境,也就是我们常说的 JRE. 然而,JDK 就更为庞大了,它还提供了一些非常好用的小工具,比如 " javac、java、jar " 等等…

我们必须必须明确,javac 和 java 这两个命令是 JDK 提供的,此外,上述的这一系列的过程,同样需要依赖 JDK、JRE、JVM.

而 JDK 是包含 JRE 和 JVM 的,所以,我们可以通过 Oracle 官网下载 JDK 即可。下载的过程我就不展示了,B 站有很多教程。JVM 其实就是一个软件,它底层是由 C / C++ 编写的。

0-1

总结

通过本篇博客,我们就能够明白 Java 的 " 跨平台 " 特性了,因为我们编写的 Java 代码最终是在 JVM 上运行的,所以才屏蔽了 " 操作系统的差异性 "。此外,更能理解一个 Java 程序是怎么从编译到最终的运行结果的。

然而,我们平时使用的都是 IDEA,它有效地解决了上述的很多麻烦事,但是 IDEA 依旧需要基于 JDK 才能进行开发。我认为,理解编译和运行的原理,理解 javac 和 java 命令,对我们认识 Java 只有好处,并没有坏处。

未经允许不得转载:白首齐眉网 » javac 和 java 命令