这个问题比较菜,以前老师讲JVM可以实现跨平台,我就一直认为当你买了Windows安装盘,或者下载了Linux安装程序,安装好后JVM随带着安装到了系统盘下的某个目录中,任何在该系统中跑的JAVA程序都先寻找到JVM,在JVM上统一跑。可是前几天看书遇到个问题,也有人问过,Applet也是JAVA程序也该在JVM上跑,书上说Applet跑在浏览器的JVM上,这个我就糊涂了,难道JVM是与那些有可能作为JAVA运行平台的应用程序绑定安装的,换句话说,将来我想自己做一个浏览器能跑Applet那我还要找一个JVM与浏览器放在一起?还有一些软件,能通过JAVA程序调用其接口的,往往在安装的时候最后有个安装JAVA虚拟机的提示,难道这就是说那些软件还要在安装JVM?单独的JVM是什么样子?是一个安装程序?一个文件夹?

解决方案 »

  1.   

    JVM是一套软件
    找你系统的JRE目录。可能有多个JRE存在的。
    可能是SUN的Java1.5, 1.6,也可能是IBM的Java。java虚拟机运行的时候,往往有个java.exe, 或javaw.exe运行起来的,(Windows的情况)
    是这个程序运行你的class文件。在MAC上,就是固化了Java的,但是也可以升级。
      

  2.   

    关于浏览器运行applet的问题,就好比浏览器运行flash,或者一些流媒体,甚至现在流行让doc,ppt等文件在浏览器上跑,其实浏览器本身并不需要知道这些东西怎么解码,怎么显示,浏览器只需要告诉操作系统这个区域有个什么样的定位符,后缀是什么,操作系统调用相关软件进行运行和显示,所以当浏览器发现这边有一段applet代码(在html语言里面的applet标记)会通知操作系统,操作系统如果发现已经安装了合适版本的jvm就会来解析,反之则报错或者不进行解析。所以说jvm是针对操作系统的,楼主你先前的认识是正确的
      

  3.   

    JVM是一套软件 
    找你系统的JRE目录。可能有多个JRE存在的。 
    可能是SUN的Java1.5,   1.6,也可能是IBM的Java。 
    我知道JVM与JRE有关系,但是不知道关系是什么,我也见过JRE文件夹不知道里面的文件具体做什么,和JDK下的文件有什么区别?
      

  4.   

    在Java安装目下jre\bin\client,有一个jvm.dll,这个就是Java虚拟机
      

  5.   

    啊?JVM在JAVA安装目录下?随JAVA安装而安装的?那没有安装JAVA环境的机器也就没有安装jre,也就没有JVM,就不能跑JAVA程序了???
      

  6.   


    可是前几天看书遇到个问题,也有人问过,Applet也是JAVA程序也该在JVM上跑,书上说Applet跑在浏览器的JVM上,这个我就糊涂了,难道 JVM是与那些有可能作为JAVA运行平台的应用程序绑定安装的,换句话说,将来我想自己做一个浏览器能跑Applet那我还要找一个JVM与浏览器放在一起?
    --------------------------------------------------------------------------------------------------------------------------
    Applet是要跑在JVM上的,也就是说你写的Applet要能跑就要求客户端的电脑上装有JVM。
    还有一些软件,能通过JAVA程序调用其接口的,往往在安装的时候最后有个安装JAVA虚拟机的提示,难道这就是说那些软件还要在安装JVM?
    ---------------------------------------------------------------------------------------------------------------------------
    不明白什么软件,只要是java写的程序就必须有JVM单独的JVM是什么样子?是一个安装程序?一个文件夹?
    -------------------------------------------------------------------------------------
    你可以把JVM想象成跑在你电脑上的一个程序,应该是用C写的。
      

  7.   

    我知道JVM与JRE有关系,但是不知道关系是什么,我也见过JRE文件夹不知道里面的文件具体做什么,和JDK下的文件有什么区别?
    ---------------------------------------------------------------------------------------------------------------------
    JRE里有javac,java,javaw等工具,也有java se的二进制文件,jdk中除了jre外还有source code,你用java写的应用程序是要跑在JVM上的,你的java程序中引用的类也在jre中。
      

  8.   

    啊?JVM在JAVA安装目录下?随JAVA安装而安装的?那没有安装JAVA环境的机器也就没有安装jre,也就没有JVM,就不能跑JAVA程序了???
    ----------------------------------------------------------------------------------------------------------------------------
    对的,没错,不能跑。
      

  9.   

    请问JVM是与操作系统绑定的还是与应用程序绑定的?  
    ------------------------------------------------------
    JVM是与操作系统邦定的。
      

  10.   

    按8楼说JVM是随JAVA安装而安装的(比如说我刚安装一个WINDOWS操作系统,然后什么都没安,就安了一个JAVA游戏,这个游戏玩不了;然后我去SUN下载JDK1.5安装上了之后,游戏就能跑了,是这个意思?)
      

  11.   

    做一个完整解释吧:JDK = J2SDK 是java的开发包。
    jvm 是 java 虚拟机的简称。
    jre 是 java运行环境。简单点看可以认为 : jvm=jre ,jdk包含jre。jre一台机器可以装多套。小的程序希望你自己装jre。它在上面运行就行了。(例如applet)
    做的好一点的就提醒你装一套jre。
    大的程序有些自带jre(例如Oracle,Websphere)
      

  12.   

    按8楼说JVM是随JAVA安装而安装的(比如说我刚安装一个WINDOWS操作系统,然后什么都没安,就安了一个JAVA游戏,这个游戏玩不了;然后我去SUN下载JDK1.5安装上了之后,游戏就能跑了,是这个意思?)
    -----------------------------------------------------------------------------------------------------------------------
    对的
      

  13.   

    可是我隐约记得每次安装完操作系统后就开始狂装软件,这其中就不乏有JAVA编写的软件,都能运行阿,莫非其把JRE放在安装包里,随程序安装就安上了?