关于这两个的概念已经看的很多了请大家不要再讲一些jvm,jre的概念,只想问他俩在具体应用中的场所有何不同?.class文件在jvm可以执行吗?就是运行.class文件就不需要jre了?完成什么任务必需有jre?
完成什么任务有jvm就可以了?

解决方案 »

  1.   

    jvm是java虚拟机,jre是java运行环境.jvm的范围中应该包括了jre.
    这两个概念好象没有可比性吧? 你用jdk和jre比还差不多.
    一般不做开发只是运行java application或java applet的话只要有jre就可以了,但如果要开发就应该安装jdk.
      

  2.   

    JDKJDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK.最主流的 JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。JDK一般有三种版本:SE(J2SE),standard edition,标准版,是我们通常用的一个版本EE(J2EE),enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序,ME(J2ME),micro edtion,主要用于移动设备、嵌入式设备上的java应用程序Java开发工具(JDK)是许多Java专家最初使用的开发环境。尽管许多编程人员已经使用第三方的开发工具,但JDK仍被当作Java开发的重要工具。JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心 Java API是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。Java API包括一些重要的语言结构以及基本图形,网络和文件I/O.一般来说,Java API的非I/O部分对于运行Java的所有平台是相同的,而I/O部分则仅在通用Java环境中实现。作为JDK实用程序,工具库中有七种主要程序。◆Javac:Java编译器,将Java源代码转换成字节码。◆Java:Java解释器,直接从类文件执行Java应用程序字节代码。◆appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。◆Javadoc:根据Java源码及说明语句生成HTML文档。◆Jdb:Java调试器,可以逐行执行程序,设置断点和检查变量。◆Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。◆Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。JREJRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。是Sun的产品,包括两部分:JavaRuntimeEnvironment和JavaPlug-inJavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具——编译器、调试器和其它工具。JRE需要辅助软件 ——JavaPlug-in——以便在浏览器中运行applet.J2RE是Java2 Runtime Environment,即Java运行环境,有时简称JRE.如果你只需要运行Java程序或Applet,下载并安装它即可。如果你要自行开发 Java软件,请下载JDK.在JDK中附带有JRE.注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行 Applet,务必安装一个JRE或JDK.
      

  3.   

    jdk里面主要用到了lib里面的库文件和bin里面的exe文件
      

  4.   

    jvm=java virtual machine
    jre=java runtime environmentjvm是运行态的,每个java程序启动,都要先启动一个jvm,然后我们写的class才能在这个jvm中被执行。jre是静态的,是操作系统上的一个目录,将jre目录下的java程序执行起来,就是jvm所以我支持楼上,楼主可能把概念搞错了。
      

  5.   

    只要是java程序肯定要在jvm里运行,要不然怎么跨平台。
    参考4楼
      

  6.   

    个人理解!光有jvm啥也干不了,jvm只是实现了Java的跨平台性。只是想运行Java程序,那就装该jre就行了!想开发Java程序 用jdk!
      

  7.   

    其实jvm不跨平台的!每个平台都有自己的jvm,这点可以在我们下载jdk的时候需要选择相应平台得到验证!jvm把class文件转换为相应的平台下的可执行文件,这才实现了java代码的平台无关性
      

  8.   

    http://wf66.com/page/20059/25569B8E3.htm
    Java虚拟机(JVM)的类装载就是指将包含在类文件中的字节码装载到JVM中, 并使其成为JVM一部分的过程。JVM的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些功能模块, 而不影响系统其他功能模块的正常运行。本文将分析JVM中的类装载系统,探讨JVM中类装载的原理、实现以及应用。  二、Java虚拟机的类装载实现与应用  2.1  装载过程简介  所谓装载就是寻找一个类或是一个接口的二进制形式并用该二进制形式来构造代表这个类或是这个接口的class对象的过程,其中类或接口的名称是给定了的。当然名称也可以通过计算得到,但是更常见的是通过搜索源代码经过编译器编译后所得到的二进制形式来构造。  在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和初始化,其中链接又可以分成校验、准备和解析三步,除了解析外,其它步骤是严格按照顺序完成的,各个步骤的主要工作如下:  装载:查找和导入类或接口的二进制数据; 
      链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的; 
      校验:检查导入类或接口的二进制数据的正确性; 
      准备:给类的静态变量分配并初始化存储空间; 
      解析:将符号引用转成直接引用; 
      初始化:激活类的静态变量的初始化Java代码和静态Java代码块。   至于在类装载和虚拟机启动的过程中的具体细节和可能会抛出的错误,请参看《Java虚拟机规范》以及《深入Java虚拟机》,它们在网络上面的资源地址是:
      http://java.sun.com/docs/books/vmspec/2nd-edition/html/Preface.doc.html
      http://www.artima.com/insidejvm/ed2/index.html
      由于本文的讨论重点不在此就不再多叙述。  2.2  装载的实现  JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。  在Java中,ClassLoader是一个抽象类,它在包java.lang中,可以这样说,只要了解了在ClassLoader中的一些重要的方法,再结合上面所介绍的JVM中类装载的具体的过程,对动态装载类这项技术就有了一个比较大概的掌握,这些重要的方法包括以下几个:
    jre 英文翻译简单明了
    Java Runtime Environment,即Java运行环境
      

  9.   

    简单的说jvm是java运行的环境 要不然java没法运行
    jre是开发类用的包 
      

  10.   

    虽然6楼的回答不够全面,也可能不太对。但却是最针对我要问的问题。就是JVM能干什么,不能干什么,什么时候需要jre。
    所以多给了分。