本文通过依靠本地的 JRE,使用 Windows 的 Shell 命令在桌面新建文件夹,并在该文件夹中编译、运行一段 Java 程序段来揭示 Java 跨平台运行的机理。这也是我们在初学 Java 时老师会带我们做的一个实验,一步一步来理解 Java 的运行流程。
关于进一步了解 Java 源程序编译、执行原理(跨平台性根本原因)请移步本人另一篇帖子 Java 版本、语言规范、API、JDK、IDE、Java 源程序编译、执行原理(跨平台性根本原因)、特殊字符用法、8 大数据类型小结。
Windows+R 快捷键快速打开 cmd 窗口,并进入本地桌面目录,如下图所示:
我们调用dir
指令查看桌面文件目录序列,如下图所示:
我们使用md JavaTest
命令在桌面创建 Java 文件夹,我以创建文件夹 JavaTest 为例,如下图所示:
在此补充几个 cmd 中对于目录和文件的操作,方便本次实验进行。
dir
显示目录和文件cd
进入目录del
删除文件rd
删除空目录(目录中不能有子目录和文件)del /q
删除目录并同时删除目录中的子目录以及文件(/q 的作用是删除多个文件时不提示确认)对于del
的其他命令我们可以查看帮助文档,如下图所示:
cd JavaTest
进入文件夹,使用 echo 命令编写 JavaTest.java 程序并输出成为 JavaTest.java 文件,如下图所示:
我们可以看到在 JavaTest 文件夹中已经生成 JavaTest.java 文件,如下图所示:
我们执行javac JavaTest.java
命令对该文件进行编译,如下图所示:
我们可以看到在执行编译命令后在 JavaTest 文件夹中已经生成 JavaTest.class 的中间字节码文件,如下图所示:
执行如下命令运行目的文件,输出运行结果"HelloWorld!
"
java JavaTest
执行完之后,我们就可以删除 JavaTest 测试文件夹下的内容了,我们调用上面提到的del /q
命令删除,如下图所示:
删除 JavaTest 文件夹,命令如下:
rd JavaTest
我们通过不依靠 IDE 而是使用 JRE 来执行 Java 文件,这种溯源的方式更便于我们理解底层的编译原理。如果大家有兴趣的话可以提前看看 Java 虚拟机的内容,本文仅仅是浅层。
我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!