01Java环境解析

一、JDK,JRE,JVM的关系(JDK1.8)

JDK包含JRE,而JRE包 含JVM

JDK = JRE + Java的开发工具(javac.exe,java.exe,javadoc.exe)
JRE = JVM + Java核心类库

JDK

JDK全称Java SE Development kit(JDK),即java标准版开发包,是Oracle提供的一套用于开发java应用程序的开发包,它提供编译,运行java程序所需要的各种工具和资源,包括java编译器,java运行时环境,以及常用的java类库等。

它包含了:

1、 JAVA开发工具(jdk\bin)

  • java.exe 运行代码**(.class文件)**
  • javac.exe 编译代码**(.java文件)**
  • javap.exe 查看编译之后的字节码
  • javadoc.exe 项目体系+注释说明导出

2、 基础开发系统库(jdk\jre\lib\rt.jar)

3、 基础开发库的源码(jdk\src.zip)

JRE

JRE**(Java Runtime Environment,Java运行环境)**,包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)

JVM

JVM Java Virtual Machine,就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序首先被编译为.class文件,这种类文件可以在虚拟机上运行,也就是说class并不直接与机器的操作系统相对应。而是经过虚拟机间接的与操作系统交互,由虚拟机将程序解释给本地系统执行,只有jvm还不能将class执行,因为在解释class的时候jvm需要调用解释所需要的类库lib,而jre包含lib类库,jvm屏蔽了具体操作系统平台的相关信息,使得java程序只需要生成在java虚拟机上运行的目标代码。可以在多种平台(操作系统)上不加修改的运行。

二、设置环境变量

在java 中需要设置三个环境变量
(1)配置path变量
(2)配置classpath变量
(3)配置JAVA_HOME变量

但java版本1.5之后不用再设置classpath了

​ Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找**。用户通过设置环境变量,来更好的运行进程。**

  • 首先在应用窗口搜索系统环境变量
    在这里插入图片描述

  • 点击环境变量,然后新建系统变量

在这里插入图片描述

  • 变量名中输入:JAVA_HOME 变量值中输入:JDK安装路径
    在这里插入图片描述

  • 点击Path变量,点击系统变量中的编辑,然后点击新建``%JAVA_HOME%\bin`

在这里插入图片描述

  • 在cmd中,输入java -version,显示出java版本信息,则环境变量设置成功

在这里插入图片描述

三、javac.exe和java.exe的使用

1、javac.exe

是编译命令,将.java源文件编译成.class字节码文件。

  • cmd命令:javac HelloWorld.java

2、java.exe

是运行字节码文件;由java虚拟机对字节码进行解释和运行。

  • cmd命令:java HelloWorld

3、示例

  • 新建一个HelloWorld.java文件

请添加图片描述

  • 在cmd命令中进入当前路径。使用d:切换到D盘,使用cd D:\temp切换到当前路径。
    请添加图片描述

  • dos中输入javac HelloWorld.java,在当前路径中生成HelloWorld.class文件

请添加图片描述

  • dos中输入java HelloWorld,成功打印Hello World!

请添加图片描述

四、javap.exe的使用

​ javap是JDK自带的反汇编器,可以查看java编译器为我们生成的字节码。通过它,我们可以对照源代码和字节码,从而了解很多编译器内部的工作。

语法:

  --help -help -h -?               输出此帮助消息
  -version                         版本信息
  -v  -verbose                     输出附加信息
  -l                               输出行号和本地变量表
  -public                          仅显示公共类和成员
  -protected                       显示受保护的/公共类和成员
  -package                         显示程序包/受保护的/公共类
                                   和成员 (默认)
  -p  -private                     显示所有类和成员
  -c                               对代码进行反汇编
  -s                               输出内部类型签名
  -sysinfo                         显示正在处理的类的
                                   系统信息(路径、大小、日期、SHA-256 散列)
  -constants                       显示最终常量
  --module <模块>, -m <模块>       指定包含要反汇编的类的模块
  -J<vm-option>                    指定 VM 选项
  --module-path <路径>             指定查找应用程序模块的位置
  --system <jdk>                   指定查找系统模块的位置
  --class-path <路径>              指定查找用户类文件的位置
  -classpath <路径>                指定查找用户类文件的位置
  -cp <路径>                       指定查找用户类文件的位置
  -bootclasspath <路径>            覆盖引导类文件的位置
  --multi-release <version>        指定要在多发行版 JAR 文件中使用的版本
  • 使用javap -c HelloWoeld,便可对HelloWorld.class进行反汇编

    
    D:\>cd D:\temp
    
    D:\temp>javap -c HelloWorld
    Compiled from "HelloWorld.java"
    public class HelloWorld {
      public HelloWorld();
        Code:
           0: aload_0
           1: invokespecial #1                  // Method java/lang/Object."<init>":()V
           4: return
    
      public static void main(java.lang.String[]);
        Code:
           0: getstatic     #7                  // Field java/lang/System.out:Ljava/io/PrintStream;
           3: ldc           #13                 // String Hello world!
           5: invokevirtual #15                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
           8: return
    }
    

五、javadoc.exe的使用

Javadoc用于描述类或者方法的作用。Javadoc可以写在类上面和方法上面。

https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html

javadoc:使用说明

https://blog.csdn.net/vbirdbest/article/details/80296136

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值