栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础01-编译和运行

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础01-编译和运行

@Java的编译与运行-B站动力节点Java零基础教程视频笔记01

Java程序的运行包括两个非常重要的阶段:
  • 编译阶段
  • 运行阶段
  • 示意图如下【来源于动力节点Java培训视频】
编译阶段
  • 编译阶段的主要任务是检查Java源程序(xxx.java)中是否符合Java语法,符合语法规则则能够生成正常的字节码文件(xxx.class);不符合Java语法规则则无法生成字节码文件。
  • 字节码文件不是纯粹的二进制,这种文件无法直接在操作系统中直接执行。
  • 编译阶段的过程
    • 程序员需要在硬盘的某个位置<位置随意>新建一个.java扩展名的文件,该文件被称为Java源文件,源文件当中编写的是Java源代码/源程序。而这个源程序是不能随意编写,必须符合Java语法规则,Java语法规则需要记忆。
    • Java程序员需要使用JDK当中自带的javac.exe命令进行Java程序的编译。
      • javac怎么用呢?在哪用呢?
        • javac的使用规则:
          javac java源文件的路径
        • 在DOS命令窗口中使用
      • javac是一个java编译器工具/命令
    • 一个java源文件可以编译成多个.class文件
    • 字节码文件/class文件是最终要执行的文件,所以说class文件生成之后,java源文件删除并不会影响java程序的执行,但一般不删除,还需要修改,生成新的效果。
    • 编译结束以后,可以将class文件拷贝到其他操作系统当中运行。【跨平台】
运行阶段【可以在其他操作系统当中,跨平台】
  • JDK安装之后,除了自带的一个javac.exe之外,还有另一个工具/命令,叫做java.exe,java.exe命令主要负责运行阶段。
  • java.exe在哪里用?怎么用?
    • 在DOS窗口中使用。
    • 语法规则:java 类名
      例如:硬盘上有一个A.class,那么就这样用:java A
      硬盘上有一个B.class,那么就这样用:java B
      硬盘上有一个C.class,那么就这样用:java C
      千万要注意:不要写成这样:java A.class【这种方式是错误的,记住就行】
  • 运行阶段的过程是:
    • 打开DOS命令窗口(windows+R按键)
    • 输入:java A
    • java.exe命令会启动Java虚拟机(JVM),JVM会启动类加载器ClassLoader。
    • ClassLoader会去硬盘上搜素A.class文件,找到该文件则将该文件装载到JVM当中。
    • JVM将A.class字节码文件解释成为二进制1010101010这样数据。
    • 然后操作系统执行二进制文件和底层硬件平台交互。
开始第一个java程序
  • 保证计算机当中已经开始安装了文本编辑器EditPlus
  • 安装JDK【JDK一般需要从oracle的官网下载】,我使用的是JDK8
  • JDK、JRE、JVM的关系搞清楚
  • JDK目录介绍:
    • JDK/bin:该目录下存放了很多命令,例如javac.exe和java.exe
    • javac.exe负责编译
    • java.exe负责运行
  • 开发HelloWorld.java源程序
  • 将HelloWorld.java源程序通过javac工具进行编译:
    • 首先解决的问题是:javac工具是否可用
    • 打开DOS命令窗口,直接输入javac,然后回车,出现一下问题:‘javac’ 不是内部或外部命令,也不是可运行的程序或批处理文件。出现以上问题原因是因为windows操作系统无法找到javac命令文件
    • 怎么解决javac不可用的问题?
      windows操作系统是如何搜索硬盘上某个命令的呢?
      • 首先从当前目录下搜索。
      • 当前目录如果搜索不到的话,会从环境变量path指定的路径当中搜索某个命令。
      • 如果都搜索不到,则报以上错误。
    • 配置环境变量path
      • 注意:path环境变量和java语言没有关系,path环境变量是属于windows操作系统的一个知识点。path环境变量是专门给windows操作系统指路的。
      • javac要想随意使用,需要将javac所在的目录配置到环境变量path中:
        D:JAVAjava8packbin
      • 需要注意的是我这里的path是FHY的用户变量,因为DOS命令默认是C:UsersFHY,而非C:Program
    • javac怎么用
      • javac java源文件路径
      • 路径有绝对路径和相对路径
        绝对路径命令:C:UsersFHY>javac D:JAVAJavaProjectsJavaSEday01HelloWorld.java(可以将文件拖进DOS命令窗口相应位置直接获取绝对路径)
        相对路径命令:D:JAVAJavaProjectsJavaSEday01>javac HelloWorld.java
  • 运行java程序:
    • 需要使用java.exe命令
    • 首先测试java命令是否可用
    • 使用方式:
      java 类名
      硬盘上有HelloWorld.class,那么类名就是:HelloWorld
      java HelloWorld
    • 首先你需要先将DOS窗口中的目录切换到HelloWorld.class文件所在目录。
    • 然后直接执行:java HelloWorld
  • 打开DOS命令窗口,执行java HelloWorld,执行原理?
    • java.exe命令会启动JVM
    • JVM启动之后会启动类加载器ClassLoader
    • ClassLoader会在硬盘上的某个位置搜索HelloWorld.class字节码文件
    • 找到该文件执行
    • 找不到该文件则报错
      疑问:ClassLoader是在哪个位置上搜索HelloWorld.class字节码文件的?
      • 默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件
      • 当然,也可以让ClassLoader去某个指定路径下加载字节码文件,这时需要配置环境变量classpath
      • classpath环境变量属于java语言中的环境变量,不属于windows操作系统【PATH环境变量属于操作系统】
      • classpath是给ClassLoader指路的
      • 设置这样的环境变量:classpath=D:JAVAJavaProjectsJavaSEday01
        打开dos命令窗口在任意位置,都可以执行:java HelloWorld
      • classpath环境变量没有配置的话,类加载器默认从当前路径下找到字节码文件。当classpath环境变量配置为某个指定路径之后,类加载器只去指定的路径当中加载字节码文件。
      • 综上所述,环境变量classpath不再配置,这样类加载器会自动从当前路径下加载到class字节码文件。所以,每一次执行.class程序的时候,需要在DOS命令窗口中先切换到.class字节码文件所在的路径下,然后运行。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340364.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号