Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java IDE  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Eclipse与Java 6u21的问题
阿熊

阿熊

元老


发贴: 5644
积分: 454
于 2010-08-02 19:45 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
近日,Oracle发布了Java 6 update 21,对java.dll的创建方式进行了一些细小但无伤大雅的变更。然而不幸的是,这个改变影响了Eclipse的启动,对Eclipse造成的影响要远远大于曾经的Sun所拥有的NetBeans。

变化之处是在创建dll时,将COMPANY_NAME=Sun Microsystems, Inc.改为了COMPANY_NAME=Oracle Corporation。然而不幸的是,Eclipse使用DLL的名字来确认是否可以安全地附加非标准的-XX:MaxPermSize。如果存在该标识但却不被支持,那么某些JVM就无法成功启动,因此就不能将-XX:MaxPermSize放在Eclipse的启动文件中(eclipse.ini),而是附加了一个新的参数--launcher.XXMaxPermSize 256m,如果Windows上的加载器检测到是Sun VM,那么就会自动附加-XX:MaxPermSize=256m。

这种自动检测发生在C加载器中(eclipse.exe)而非VM,这是因为一旦运行了VM,那么就没法修改属性了。为了能快速实现该功能(说实在的,这么做有点不妥),eclipse.exe加载器会检查Sun Microsystems字符串以确定可否增加该标识。

因此,这个变化破坏了Eclipse的加载过程,导致加载时出现OutOfMemoryError错误。这个问题很快被报告给了Eclipse,接下来Eclipse将参数名字修改为Oracle,该问题很快就被解决掉了。

虽然商标变更这种事是Oracle自己的权利(甚至都没必要在发布声明中提及这一点),但这却着实地影响到了Eclipse,不仅是当前的3.6版,还有基于3.5、3.4、及3.3的所有IDE与RCP。对于Eclipse来说,需要按照顺序来修复这个问题;目前,有个补丁程序可以修复最新版Eclipse加载器的这个问题,但还并没有直接发布,因为至少要考虑到Eclipse 3.5与3.4,为的是确保兼容性。

Oracle因快速的问题解决速度而备受称赞。虽然他们并不需要解决这个问题,但还是在几天内就解决了,随后的Java构建版本也会修复这个问题(是否要重新构建6u21抑或是6u22还不太确定)。与此同时,如果你遇到了Eclipse的问题,同时最近又安装了Java 6u21(或是自动更新的),那么可以降级到Java 6u20或是按照FAQ的指导重新启用permgen size。



作者 Re:Eclipse与Java 6u21的问题 [Re:阿熊]
阿熊

阿熊

元老


发贴: 5644
积分: 454
于 2010-08-04 23:03 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Oracle修复了Eclipse的Java问题

Oracle对因商标更换所导致的Java 6u21更新问题反应迅速。从那时起,Oracle就开始重新构建Java安装,对于Windows机器来说,现在的发布构建名变成了1.6.0_21-b07;因为该问题只影响到了Windows,因此Solaris与Linux的版本号依旧为1.6.0_21-b06。

Oracle因快速的问题响应与解决能力而备受称赞。Eclipse加载器使用了官方不支持的API检测厂商,因此Oracle根本没必要解决这个问题;然而幸运的是,Oracle赶在Eclipse发布新的Eclipse构建版之前解决了这个问题。Eclipse基金会的市场总监Ian Skerrett在一篇名为“Oracle证明了自己对社区的巨大支持并修复了Eclipse”的文章中表达了对Oracle的感激之情。

但遗憾的是,Ed Burnette在ZDNet博客上使用了颇具挑战意味的标题“Oracle更换了Java商标,导致Eclipse崩溃”,接下来这篇博客又被Slashdot等网站转载了数次。颇具讽刺意味的是,Ed的博客实际上说的是周一发布的修复并没有解决问题——但由于Twitter 140个字符的限制,博文的标题变成了消息内容,后面跟着的是Ed博文的链接。

Twitter等社交网络的出现也加快了事件在公众间的传播速度:

即便是表面看起来无伤大雅的改变也会导致撞击效应(knock-on effects)。JVM团队根本想不到会发生这种事,Eclipse团队也不可能事先预料到商标会发生变化。然而,即便是小小的撞击效应“这么做根本没问题”也会导致难以预料的后果。最好的做法是发布一个bug修复版,将其余不必要的变更放到下一版当中。
新闻标题的重复次数要远远高于内容。尤其是Twitter,只有标题才适合于在Twitter上发布。如果通过“tweet this”按钮不断发布标题(就像ZDNet所为),那么它的传播速度要远远高于内容本身。有些人并不会阅读内容,只是根据标题来推断内容而已。
无论如何,JDK7都会修改商标。Oracle为了获得Java版权而投入了大笔金钱,他们会在JDK7发布时修改商标。这应该是个前兆。
这不仅仅是Eclipse Helios的问题。早在Eclipse 3.3中就使用了这种检测方式。Eclipse的任何版本都会遇到这个问题,但目前的修复计划只针对Eclipse Helios。
Eclipse不仅仅只是个IDE而已,它是个平台。因此,这个问题不仅仅只影响到最新、最棒的JDT(在任何情况下,只要开发工具更新了,开发者都会立刻升级)。然而,还有很多下游IDE和应用是基于Eclipse的商业应用;IBM拥有一整套工具,Windriver与Oracle也一样。在某些情况下,产品路线图要比Eclipse晚了整整一年时间;还有很多公司在为基金会与提交者支付报酬。“请升级到最新版以保证运行的稳定性”这句话无异于敲诈勒索。
这个变化对Eclipse造成了不利影响。要是没有Oracle敏捷迅速的思考与社区的团队精神,Eclipse(平台或是IDE)的所有下游使用者都会受到影响。六年来,Eclipse的发布过程说明:自从每年的同期发布出来后,Eclipse几乎就没遇到什么关键问题,到第5或第6个里程碑时,几乎所有的问题都已被解决掉了(但有时需要返工到Eclipse m5a或m5eh)。但今年9月的3.6.1发布计划还没法修复这个问题,更不必说Galileo 3.5.3版了。Eclipse还从来没有遇到过发布后出现这么大问题的情况呢;虽然问题不是他们造成的,但能够保持对问题的快速响应可以表明他们是负责任的软件开发者。微软“Patch Tuesday”的批评家说到,将关键的补丁放到下一个发布周期中是断然无法接受的事情,Eclipse的发布过程也是如此。

Oracle已经表明了其足够的灵活性,可以在发布期间解决问题,但他们的做法是推迟而不是转移问题。未来,Eclipse应该负责解决这个问题,他们不该仅仅负责使用IDE的那些人,还应该负责那些没有使用稳定版来构建应用的开发者。



作者 Re:Eclipse与Java 6u21的问题 [Re:阿熊]
scottding

十三部落酋长

CJSDN高级会员


发贴: 1054
积分: 101
于 2010-09-08 11:46 user profilesend a private message to usersend email to scottdingsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
呵呵,阿熊也来这里闲逛了。


Blog   Home   @unumu


flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923