zoukankan      html  css  js  c++  java
  • jvm、jre、jdk三者区别

    jvm、jre、jdk区别

      刚刚遇到的问题,搭建docker所需的环境,需要将jvm与tomcat压缩文件传到虚拟机上,以为jvm就是jdk的包,查了一下,其实不是。

      哈哈,原谅我是小白咯。

      下面就说说吧。

    1、jvm:java虚拟机,负责把.class 二进制文件翻译成不同系统上的机器操作指令。因此JVM实现了java的跨平台运行,它把它可识别的.class 文件在不同平台上翻译成不同的机器操作指令,可以在windows、linux上等不同平台上运行。jvm负责把class文件加载进内存, 它包含类加载器子系统,运行时数据区:方法区(静态区)、堆(new的对象)、栈(局部变量和方法的中间结果)、程序计数器、本地方法,垃圾回收系统、执行引擎。

    2、jre:java运行环境,它包含了jvm和java项目运行所需要的java 类库,  java.util  java.sql  java.long   java.net 等。如果不编译只运行,那么有jre就可以了,java 命令负责拉起 JVM。

    3、jdk:包含jre和编译等开发java项目所需要的一些工具,这些工具都在 jdk安装目录下的 bin目录下,包括 javac.exe  java.exe  jar.exe  jvisiovm.exe、jconsole 等负责 编译、运行 和项目调试等。

          在eclipse中执行 run as java application的时候,其实是调用 jdk的 java exe,javac 命令工具,根据 .classpath 的配置去找项目的本身的class文件和依赖的jar包的文件(classpath 里会去maven仓库里找依赖的jar包,不是找 targer下的lib包),然后执行的。
         classpath配置的是java类库的位置以及执行字节码文件时查找文件的路径。 Java执行环境本身就是一个平台,执行于这个平台上的程序是已编译完成的Java程序( 会以.class文件存在)。

  • 相关阅读:
    浅谈C++ STL中的优先队列(priority_queue)
    哈夫曼树与哈夫曼编码
    Binary Search 的递归与迭代实现及STL中的搜索相关内容
    Prime 算法的简述
    估算网站需要多少宽带方法
    微服务服务拆分步骤
    第一次有人把科创板讲得这么简单明了
    一个人优秀到可怕的三个迹象!一旦具备,必为人中龙凤,大富大贵
    美元加息怎么“剪羊毛”
    英国脱欧的影响
  • 原文地址:https://www.cnblogs.com/M-98k/p/12330262.html
Copyright © 2011-2022 走看看