Java的技术细节与实现的经济效益举手提问。
各位高手,大家好:本人是一名正在努力中的新手,希望大家能够多多照顾、帮助小弟,小弟都在酒里了!!
今天小弟在看网页:http://baike.baidu.com/view/160710.htm,时,这里,小弟为了下文叙述方便,将此网址设为“X”,看到标题:“版本管理”时,里面有这句话:“Java的解决办法是“让每个程序自己携带一套JRE”,这里,为了下文小弟方便表达,请允许小弟将此句话设为“Y”。”、以及在“版本管理”标题中的第八行有:“Dreamweaver自带一套JDK1.3”,这里,请允许小弟将此句话设为“Z”。
我的问题是:
①.如果SUN公司面对使用他们产品的各位开发商所开发的产品在某一个操作系统上的运行的,“使用Java语言的字节码表达的产品与操作系统的通信问题”,采取的解决办法是:“为每一个通过Java语言开发出的产品,最后,在出品时,绑定一个JRE”的话,各位高手,小弟希望知道:SUN公司在进行这一项“绑定”任务时,所进行的时间与位置,是在开发工作进行到什么时候并且,是Java语言所包含的哪一个程序对开发商写出的产品,进行的绑定?在“Z”位置处,开发商Adobe公司,如果使用Java语言开发出红易做图框括起来的“Dreamweaver”的话,各位高手,是不是Adobe的工程师在将Dreamweaver的底稿写完之后,在使用Java编译器进行java代码想字节码转换的出品过程时,会将原java代码在向字节码转换的过程中,为所生成的字节码文件加上为了让开发商开发出的程序能够运行在用户电脑上的“JRE”的源字节码?
②.在“Y”处,所写的是“让每个程序自己携带一套"JRE"”,而在“Z”处,所写的文字是:“Dreamweaver自带一套"JDK"1.3”,请问各位高手,因为,开发商在“Z”处所写开发出作品后,他们的目的是,为了能够让自己使用Java语言写出的作品,在他们的用户的电脑上能够运行,达到这个目的,JRE就足够了,而这里,“Z”处的文字:“Dreamweaver自带一套"JDK"1.3”,JDK的体积要比JRE大很多倍,并且,多出来的部分,也不能让开发商所开发的程序得到有效利用,此处的自带一套“JDK”中的文字,“J·D·K”,这三个字,是不是在制作网页的时候,写错了?
③.小弟再请问诸位高手:“JRE的内部结构”是什么?它是包含了针对各个不同的操作系统的“解释器”吗?还是分别针对用户的不同需求,来向用户所希望面对的客户的软硬件配置来进行开发商所针对的他的用户的配置所进行的“JRE”的添加?如果JRE的内部结构是:“只包含开发商所欲面向的客户的操作系统”的话,那么,一个程序在被开发商开发好了之后,开发商在将自己的java源代码进行向字节码的“编译”动作时,Java编译器怎么知道,开发商欲将自己开发出来的程序,在哪一种平台上运行?假如JRE的结构是:“所有的SUN公司已经写好的,决定兼容的操作系统”的话,那么,JRE在用户的电脑上进行“翻译”工作时,是不是,还应当有一套检测本地操作系统是什么品牌的机制结构?因为要绑定到每一个开发商所开发的产品中,这一套机制以及现存的多种本地环境用不上的操作系统解释器,这样设计,所付出的代价,是不是有些过大?
本人刚刚查过:一个Dreamweaver8.0的所占的空间是“60.24M”,而一个JDK1.6版的大小,是:“72M”,就算是“Z”处所写的“JDK1.3”的大小也是29.5M,如果使用Java语言进行开发的话,这里,一个Dreamweaver8.0就要“凭空”增加一倍的“块头”,这样的设计,是不是对于开发商来说,尤其是面向手机用户,PDA用户等硬盘空间相对比较宝贵的用户来说,是不是代价有些过大了呢?
小弟谢谢高手的耐心,能够看完小弟的问题,如果高手不嫌小弟笨的话,小弟的QQ号码是:745083865.
希望能够与高手成为好朋友,小弟,一定会为曾帮助过自己的高手、或者与小弟水平差不多甚至比小弟差些的朋友,只要是曾经认真地为小弟付出过的朋友,请你们放心,小弟,一定会对你们曾经的帮助,加倍,报答。 --------------------编程问答-------------------- 1
在开发商决定用那个版本的jdk来开发时,就决定了jre的版本选择,jre是一套成熟的产品,开发商可以把sun的jre原封不动的一起打包发布,也可自己customize(可以给jre“瘦身”,只留下必要的部分)以后再打包发布,当然,如果完全相信用户的jre版本能正常运行,也可以不发布jre(用户这么多,谁敢保证每个用户的版本都能正常运行?),所以,一般来说选择什么版本的jdk开发,为了保证程序的有效运行,就选择同版本的jre一起发布
2
不是写错的,IDE自带jdk是很正常的,就好像eclips也会自带jdk一样,自带jdk的IDE不需要客户自己去安装jdk,否则一个IDE需要用户自己额外去配制,在一定程度上,IDE就失去了意义,因为IDE就是集成开发环境的意思,用户安装了IDE不能马上开发,又谈什么“集成”呢?
3
jre是把java的伪代码翻译成目标机器的指令代码,所以不同的平台jre是不一样的,jre是一套独立的产品,开发商可以不做任何customize而直接集成一起发布就可以了,所以开发商没有所谓的付出的代码过大,只是针对于希望发布目标的平台选择相应版本的jre集成一起发布。
对于有限资源目标机器(如手机,PDA)的开发来说,一般这些机器本身是不带开发环境的,只带运行环境,也就是说,不会有手机会去安装Dreamweaver8.0来开发,往往都是在电脑开发好了才发布到手机上,而目标机预定的jre也是固定的,当然可以有软件升级,所以这类的开发都会采用特定的jre来测试,很多simulator就是安装了这样的jre来提供用户测试,测试通过后才发布到手机的
补充:Java , Java相关