windows下安装JDK会安装两份JRE,一份在JDK目录下(这里称其为JDK-JRE),另一份(公共JRE)自行指定位置(还会释放java.exe到系统目录下)...JDK-JRE的bin里有份server jvm,这里不表
以前以为两份JRE是相同的,后来看到有人说到两者的rt.jar不同今天二进制比较发现,两者的client-jvm不一样...
两者的lib里的各个jar大小均不一样...
JDK-JRE里的jar均比JRE里的要大我随便挑了两个class文件(两个rt.jar里各一个同class)
其二进制码是不同的,JDK-JRE比JRE版本的略多几句...不知道影响是什么
但是反编译成java文件后,内容是一模一样的分别用JDK-JRE里的库与JRE里库作为classpath,编译一段程序
得到的字节码是一模一样的分别用JDK-JRE-JVM与JRE-JVM配合各自的classpath运行那段程序
耗时也是一模一样有哪位童子知道两种JVM与各自库的区别到底是什么吗?
JDK-JRE的库多出来的是什么?
哪个性能更好?哪个更稳定?注:Ubuntu下,JDK只安装一份JRE...没有安装公共JRE

解决方案 »

  1.   

    没区别JDK 是 Java 开发工具,里面包括开发环境和运行环境
    JRE 仅仅是个运行环境,不包括开发环境,可以注意一下,JRE/bin 目录中是没有 javac.exe 这个文件的如果安装了 JDK,那么 JRE 可以不用装。
      

  2.   

    请看图,jre里的比jdk里的jre的少一个server端的java虚拟机。
      

  3.   

    来顶顶 可能是多余 JRE 有JDK不就可以
      

  4.   

    安装了 JDK,JRE 可以不用装。我没思考过2者的关系楼主看源代码吧
      

  5.   

    没区别 JDK 是 Java 开发工具,里面包括开发环境和运行环境 
    JRE 仅仅是个运行环境,不包括开发环境,可以注意一下,JRE/bin 目录中是没有 javac.exe 这个文件的
      

  6.   

    jdk是java开发工具集和java的运行环境,jre只是是java的运行环境。
      

  7.   

    虽然很感谢楼上诸位
    不过很似乎都没怎么看我内容嘛
    JDK是什么,JRE是什么...这个就不需要跟我解释了jdk里的jre比公共jre多了个server jvm或者多了少了其它的文件我也知道但是就都有的部分而言,两者的lib与client-jvm也还是不一样的,以6u7为例
    这个是两者client-jvm截图(红色是不同部分)
    这个是rt.jar的截图(注意大小)
    可以看到两个JRE的核心内容都是不一样的但是,我前面也提到了,rt.jar中的类文件(大小不同)反编译后得到的源码却是一模一样的
    分别加载两种库文件,编译出来的class文件是一样的
    用两种jvm加载各自的rt.jar及其它,运行已编译好的class,性能也是一样的为什么大小内容会不一样?两者到底有何区别?我之所以提Ubuntu,是因为它的JDK安装只装一份JRE,也就是说windows下的两份JRE能力差不多(这是应该一定的)
    但是其JDK安装包大小却与windows版本的安装包大小差别不大
    如果windows版本的两份JRE都一样还好说.但是却不一样,那问题就来了,两份JRE和一份JRE的安装包大小差距咋就不大哩,甚至windows版本的安装包还小一些...windows版本为什么要罗里罗嗦的弄两份(尽管可选)?
    还是不一样的两份...得有个道理可言啊
      

  8.   

    CSDN不能编辑原帖真不方便啊啊啊...
      

  9.   

    差别就在server_jvm和client_jvm.前者专门为程序开发和测试用的,后者是Java程序的运行环境。两者的性能有差异,各为所用。
      

  10.   

    这边有一个将它们俩区别的帖子 lz看看 http://topic.csdn.net/u/20080605/12/556d04c3-1fb5-4bba-892a-be9dfe0d4498.html
      

  11.   

    LS关于client-jvm与server-jvm区别的简介资料不错不过我问的不是这个问题...
    同一版本的JDK两份client-jvm以及lib的不同
      

  12.   

    没区别。SUN 大概本来想公共 JRE 谁都能用,JDK 里的 JRE 只有 JDK 本身用。