Java程序的编译和执行

Java的加载与执行:一个完整的java程序


    
    * Java开发的整个生命周期,包括两个重要的阶段,分别是:编译阶段和运行阶段

    * 编译生成的程序被称为:字节码程序。编译生成的文件是:xxx.class文件

    * 编译和运行可以在不同的操作系统中完成。

    * 程序员在xxx.java文件中编写源代码,源代码必须符合java的语法,这些源代码就是高级语言。
    存放源代码的文件被称为源文件。

   

编译期:【在windows环境中完成】


            - 安装JDK,配置环境
            - 在硬盘的某个位置创建一个xxx.java源文件
            - 打开源文件,在该文件当中编写符合java语法的源程序,然后保存。
            - 使用JDK中自带的javac.exe命令对以上的java源程序进行编译。
                * 编译通过:说明语法没有问题
                    - 在硬盘上生成一个或者多个字节码文件【xxx.class】
                * 编译失败:说明源程序某个位置不符合java语法格式。
                * 编译的语法格式:打开DOS命令窗口,输入:javac 源文件路径

                注意:
                    - 源文件路径可以是绝对路径,也可以是相对路径。
                    - 编译之后,其实java源文件删除不会影响程序的执行。
                    - 最好不要将java源文件删除,因为程序最终运行效果不是预期效果的时候,需要
                    重新修改java源代码,然后进行重新编译生成全新的class字节码文件,再重新运行
                    字节码程序。

  

运行期:【可以不在windows中完成,可以换一个操作系统,但前提是该操作系统中已经安装java的运行时环境】

打开DOS命令窗口,执行java HelloWorld,执行原理?
    * java.exe命令会启动JVM
    * JVM启动之后会启动类加载器ClassLoader
    * ClassLoader会在硬盘上的某个位置搜索HelloWorld.class字节码文件
    * 找到了这个.class文件之后将.class文件转换成"二进制",操作系统可以直接识别二进制。
    * 找不到该文件则报错

    疑问:ClassLoader是在哪个位置上搜索HelloWorld.class字节码文件的?
        * 默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件
        * 当然,也可以让ClassLoader去某个指定的路径下加载字节码文件,这时需要配置环境变量classpath
        * classpath环境变量属于java语言中的环境变量,不属于windows操作系统【PATH环境变量属于操作系统】
        * classpath是给ClassLoader类加载器指路的。
        * 设置这样的环境变量:classpath=D:\course\JavaProjects\02-JavaSE\day02
            - 打开dos命令窗口在任意位置,都可以执行:java HelloWorld
        * classpath环境变量没有配置的话,类加载器默认从当前路径下找字节码文件,
        当classpath环境变量配置为某个指定的路径之后,类加载器只去指定的路径当中加载字节码文件。
        * 综上所述,环境变量classpath不再配置,这样类加载器会自动从当前路径下加载class字节码文件。
        所以,每一次执行.class程序的时候,需要在DOS命令窗口中先切换到.class字节码文件所在的路径下。
        然后运行。
        * 当然,classpath也可以这样配置:classpath=.

        注意:
            路径中“..”表示上级目录
            路径中“.”表示当前目录

发布了28 篇原创文章 · 获赞 0 · 访问量 1227

猜你喜欢

转载自blog.csdn.net/gaohanjie123/article/details/105452519