JDK-JRE与JRE的JVM及lib的区别?

runshine 2009-09-30 08:47:07
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
...全文
557 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
runshine 2009-10-08
  • 打赏
  • 举报
回复
最终还是没有等到确定答案...似乎都没注意过这问题

回帖前看下帖才是好习惯

结贴,希望以后能找到答案
zrcvic 2009-10-02
  • 打赏
  • 举报
回复
没区别。SUN 大概本来想公共 JRE 谁都能用,JDK 里的 JRE 只有 JDK 本身用。
runshine 2009-10-01
  • 打赏
  • 举报
回复
LS关于client-jvm与server-jvm区别的简介资料不错

不过我问的不是这个问题...
同一版本的JDK两份client-jvm以及lib的不同
wanghb121 2009-10-01
  • 打赏
  • 举报
回复
这边有一个将它们俩区别的帖子 lz看看 http://topic.csdn.net/u/20080605/12/556d04c3-1fb5-4bba-892a-be9dfe0d4498.html
wanghb121 2009-10-01
  • 打赏
  • 举报
回复
差别就在server_jvm和client_jvm.前者专门为程序开发和测试用的,后者是Java程序的运行环境。两者的性能有差异,各为所用。
runshine 2009-10-01
  • 打赏
  • 举报
回复
顶上去,走过路过不要错过...
铁匠梁老师 2009-09-30
  • 打赏
  • 举报
回复
路过,rt
zhanghai921 2009-09-30
  • 打赏
  • 举报
回复
jdk是java开发工具集和java的运行环境,jre只是是java的运行环境。
healer_kx 2009-09-30
  • 打赏
  • 举报
回复
没区别。
狼里格东 2009-09-30
  • 打赏
  • 举报
回复
没区别

JDK 是 Java 开发工具,里面包括开发环境和运行环境
JRE 仅仅是个运行环境,不包括开发环境,可以注意一下,JRE/bin 目录中是没有 javac.exe 这个文件的
  • 打赏
  • 举报
回复
安装了 JDK,JRE 可以不用装。

我没思考过2者的关系

楼主看源代码吧
AldisZhan 2009-09-30
  • 打赏
  • 举报
回复
来顶顶 可能是多余 JRE 有JDK不就可以
justinavril 2009-09-30
  • 打赏
  • 举报
回复
请看图,jre里的比jdk里的jre的少一个server端的java虚拟机。
  • 打赏
  • 举报
回复
没区别

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

如果安装了 JDK,那么 JRE 可以不用装。
philbert ryan 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hui94781674 的回复:]
mark 等回答。
[/Quote]






.
hui94781674 2009-09-30
  • 打赏
  • 举报
回复
mark 等回答。
bigbro001 2009-09-30
  • 打赏
  • 举报
回复
看看大侠怎么说。。。
runshine 2009-09-30
  • 打赏
  • 举报
回复
CSDN不能编辑原帖真不方便啊啊啊...
lxxzhy 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 runshine 的回复:]
虽然很感谢楼上诸位
不过很似乎都没怎么看我内容嘛
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版本为什么要罗里罗嗦的弄两份(尽管可选)?
还是不一样的两份...得有个道理可言啊
[/Quote]
嗯....
runshine 2009-09-30
  • 打赏
  • 举报
回复
虽然很感谢楼上诸位
不过很似乎都没怎么看我内容嘛
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版本为什么要罗里罗嗦的弄两份(尽管可选)?
还是不一样的两份...得有个道理可言啊

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧