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
以前以为两份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
JRE 仅仅是个运行环境,不包括开发环境,可以注意一下,JRE/bin 目录中是没有 javac.exe 这个文件的如果安装了 JDK,那么 JRE 可以不用装。
JRE 仅仅是个运行环境,不包括开发环境,可以注意一下,JRE/bin 目录中是没有 javac.exe 这个文件的
不过很似乎都没怎么看我内容嘛
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版本为什么要罗里罗嗦的弄两份(尽管可选)?
还是不一样的两份...得有个道理可言啊
同一版本的JDK两份client-jvm以及lib的不同