文章目录
一 - 前言
二 - Dos上运行Java命令
1 - 环境变量的本质
2 - Java中的可执行文件
3 - 运行Java程序的流程
4 - 运行Java程序
5 - 代码解释
6 - 运行本质
7 - 配置CLASSPATH
8 - javadoc命令
三 - 结尾
一 - 前言
介绍:大家好啊,我是不良战士
社区:(欢迎大家加入)日常打卡、学习交流、资源共享的知识星球
更新时间:每周两更。
在本文中,我们将编写第一行Java代码并在DOS窗口运行出结果,正式跨入Java领域的大门!
本文讲解内容有:
- 使用java命令编译并运行java代码
- 解释java程序的写法规范
- 讲解java的运行过程中内部做了哪些事情
- 如何配置CLASSPATH让java代码随处运行
- 如何使用javadoc生成帮助文档
那就进入正题吧!
二 - Dos上运行Java命令 1 - 环境变量的本质
还记得上一节我们配置的环境变量吗?需要把java的根目录和bin目录放进去,那它的作用是什么呢?
是用来快速的定位某些东西的,比如之前我们使用的dos命令,他们都是放在某些文件夹里的exe格式的文件,如果我们正常想使用一个文件,当然是需要先找到它的位置才能使用。配置环境变量就是为了达到这个目的。
2 - Java中的可执行文件当然,如果我们不配置的话,在那个文件里的路径下打开cmd窗口,也可以执行,比如我在阿里云盘的目录下查看案例云盘的版本。
而若是不在它的目录下,就会出现如下提示。
3 - 运行Java程序的流程我们打开JDK安装目录下的bin目录,会看到很多可执行文件,这些几乎都是可以在cmd窗口中可执行的java命令。
4 - 运行Java程序学过C的小伙伴都知道,C语言中是把.c文件编译链接后直接形成一个可执行文件(exe)来运行,而Java的运行有所不同。
还记得上一篇介绍的JDK、JRE、JVM吗,Java代码的执行过程就是:
先把Java源文件(.java)编译成class文件(字节码文件),然后把class文件放在JRE上运行。
5 - 代码解释我们先编写这样的代码,然后将文件存为.java格式(类名要和文件名一致)
public class Test { public static void main(String[] args) { System.out.println("hello world!"); } }
这是一个打印hello wrold的简单程序,我们还可以打印其他的内容。(一会就会解释这个代码的内容)
我们在java代码所在目录下使用javac命令编译java代码,(javac.exe本质是java编译器)此时会在目录下形成一个.class文件,这就是编译形成的字节码文件。
编译后,我们使用java命令执行字节码文件。(此时不加.class文件后缀)
最后再说一件事,如果你的JDK版本足够高,你的java命令可以自动完成编译的步骤。
6 - 运行本质解释上面我们执行的代码:
public static void main(String[] args)就是一个主函数,代表着这个程序的入口。在执行一个程序时必须有一个合理的入口才能正确的执行程序。而Java也与其他语言不一样,程序的入口必须写在类中。
System.out代表一个标准输出流对象,用来将数据传输到外部,比如打印机、外存中的文件,在这里它默认将传输目标定向到了我们的控制台中,所以才会把数据打印到我们的控制台界面,而关于它具体的细节以后会在io流中详细介绍。
这里是调用了它的println方法,将数据打印到控制台并换行,如果想不换行只需要调用它的print方法。
我们为什么能直接使用System.out?
java中自动帮我们导入了基础的开发包,比如这个System就是在java.lang包下的,被自动导入了进来。
7 - 配置CLASSPATHjava Test这个命令执行过程中到底发生了什么?
- 会先启动JVM虚拟机。
- 然后JVM启动一个叫“类加载器”的东西(以后讲),类加载器负责去硬盘中把对应的字节码文件加载到内存。
- 然后通过字节码校验器去校验这个字节码文件,验证通过后它会被交给解释器。
- 解释器将其解释成计算机能直接识别的机器指令再执行。
8 - javadoc命令我们上面的 *** 作是必须在java文件对应包下才能执行,那么如果我们想把他写在别的地方,并且不需要把cmd定位到那个目录下就能执行我们的java程序呢?
我们按照之前配置环境变量的步骤,配置一个名为CLASSPATH的环境变量。
里面写上.与我们想直接存放java字节码文件的位置。
注意:在dos命令一章讲过.代表我们的当前路径。
如果只显示能配置单行,使用;分号分隔多个路径。
执行结果:
还需要注意:这个存放的目录下必须放字节码文件才能在外部直接执行,外部无法对.java源文件编译后再执行。
同理,也就不支持java直接对源文件编译再执行,以及javac对源文件的编译 *** 作了。
我们还可以使用javadoc命令对我们的java代码生成帮助文档。
命令javadoc -d testDoc Test.java,使用-d来表示它生成到哪个目录。(目录不存在会生成)
生成完成后,我们打开对应目录的index.html就可以查看帮助文档了!
我们还可以对类或方法使用特殊的注解让帮助文档也能生成作者、代码版本号等信息。
/** *@version 1.5 *@author lixuanchen *@since 1.0 */ public class Test { public static void main(String[] args) { System.out.println("hello world!"); } }
三 - 结尾
感谢你看到这里,如果感觉内容不错的话请点赞支持一下!
如果小伙伴对我的讲解有疑问,欢迎评论区讨论。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)