zoukankan      html  css  js  c++  java
  • Java连载3-编译与运行阶段详解&JRE,JDK,JVM关系

    ·一、

    1.JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html

    二、Java的加载与执行

    1.Java程序运行包括:

    (1)编译阶段:检查Java源程序是否符合Java语法,符合语法就生成正常的字节码文件(xxxx.class),字节码文件中不是纯粹的二进制,这种文件无法在操作系统中直接执行

    i.需要用JDK中自带的javac.exe命令进行java程序编译

    ii.用法:doc窗口,规则:javac java源程序路径

    iii.javac是一个java编译工具

    iv.一个java程序可以编译生成多个.class文件

    v.字节码文件是最终要执行的文件,所以说class文件生成之后,java源文件删除并不会影响java程序的执行。

    vi.编译结束之后,可以将.class文件拷贝到其他操作系统中执行。

    (2)运行阶段:JDK安装之后,除了自带一个javac.exe之外,还有另一个工具/命令,java.exe负责运行阶段

    java.exe在dos窗口使用,规则为:

    例如:存在一个文件A.class,则命令为:java A

    注意:不要写为:java A.class,且不要接文件地址,接的是类名

    运行过程:

    i.Dos窗口

    ii.输入 java A

    iii.java.exe命令会启动JVM,JVM会启动类加载器Classloader。

    iv.Classloader会在硬盘上搜索A.class文件,找到之后,装载到JVM

    v.JVM将A.class字节码解释为二进制文件

    vi.操作系统会执行二进制文件与底层的硬件平台交互。

     

    三、JDK,JRE,JVM关系

    四、第一个Java程序

     
    
    public class HelloWorld{
    
      public static void main(String[] args){
    
        System.ou.printtln("HelloWordl");
    
      }
    
    }
    
     

    适配环境变量,将javac.exe和java.exe在dos环境中可以运行

    方法:我的电脑-右键-属性-高级系统设置-环境变量-path-编辑-新建-添加javac.exe和java.exe的地址。

    目的:dos命令窗口是按照环境变量来查找可运行的程序的,因此必须添加目标程序的路径。

    五、我们编译这个程序

     

    编译成功之后Dos窗口不报错,在文件的旁边生成一个.class文件

    注意:

    (1)选取相对路径的快捷键:(适用于相对路径时快速部署)

    打开一个目标文件夹,在地址栏直接输入cmd+回车,则直接Dos命令到这个文件夹下

    (2)在Dos窗口下,不在目标程序的目录,我们可以直接输入javac,然后拖动这个文件到dos窗口

    五、运行程序

    注意:必须先切换到.class文件所在的目录,在使用命令行才能运行,即使我们的环境变量设置好了,也不行。

    六、ClassLoder是在哪个位置上搜索HelloWorld.class的字节码文件的?

    (1)默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件

    (2)配置classpath来指定搜索位置,classpath属于Java语言中的环境变量,不属于windows。

    (3)方法:classpath=绝对路径(在windows中配置,名称要用classpath)

    (4)一旦指定了classpath,那么类加载器只会去指定的路径下加载.class文件,不过这不是问题,我们在windows下配置多个路径不就行了。

    (5)路径中的“.”代表当前目录;路径中的“..”代表上级目录。

    七、源码:HelloWorld

    地址:https://github.com/ruigege66/Java/blob/master/HelloWorld/

    2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

    3.博客园:https://www.cnblogs.com/ruigege0000/

    4.欢迎关注微信公众号:傅里叶变换,后台回复”礼包“,获取大数据学习资料

  • 相关阅读:
    福州3中集训day5
    福州三中集训day4
    福州三中集训day3
    福州三中基训day2
    福州三中集训day1
    Python3 字符串
    Python3 数字
    Python3 运算符
    Python3 基础数据类型
    Codeforces Round 253 (Div. 2)
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/11148890.html
Copyright © 2011-2022 走看看