`
skzr.org
  • 浏览: 365540 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Eclipse3.3 和 Eclipse3.4的语言包Bug?!(情人节更新)

    博客分类:
  • J2EE
阅读更多

今天本来打算察看jdk把foreach转换为什么样子的字节码,发现无法正确打开class文件!出现如图错误



明明记得以前是可以正确打开class文件的!(没有安装任何反编译class的插件的) 

1 翻译JDK问题:和以前的差别只是jdk从1.5切换到了现在的1.6了,看提示是MessageFormat.applyPattern有错,难道jdk1.6修改了这个导致不匹配了!切换到了1.5的jdk,打开后依然错误。当时我认为可能是jdk代码修改了,分别打开他们了的源代码,然后查看发现两者并无特别的差异,排除jdk故障!

2 怀疑是安装了插件导致:重新使用原始的eclipse3.3的包再次测试,竟然一切正常!晕,看样子可以确认是安装了插件导致的!到底是什么插件呢 :(

仔细看错误的异常堆栈,发现全部都是eclipse的专用类,故开始跟踪代码,从里向外走

a java.text.MessageFormat.applyPattern(MessageFormat.java:468)——〉throw new IllegalArgumentException("Unmatched braces in the pattern.");

异常是参数错误导致的,也就是这个pattern错误,继续跟踪代码发现这个pattern在

b org.eclipse.jdt.internal.core.util.Disassembler.disassemble(Disassembler.java:883)

--〉buffer.append(Messages.bind(Messages.disassembler_opentypedeclaration));

是的传递给MessageFormat.applyPattern的pattern就是Messages.disassembler_opentypedeclaration;故猜测错误就在这个Messages.disassembler_opentypedeclaration有问题

c 察看Messages类 发现BUNDLE_NAME = "org.eclipse.jdt.internal.core.util.messages";同时回忆自己安装了汉化包,说明一定是汉化包里面的资源文件有问题,打开message.properties后找到配置disassembler_opentypedeclaration =\ '{';然后打开汉化包:org.eclipse.jdt.core.nl_zh_3.3.0.v20081123043401.jar里面对应的资源文件查看发现:他们确实不一样如图修改



使用rar把修改后的文件替换原来的(使用的是MyEclipse的属性编辑器) 

d 新的问题:满怀希望打开eclipse竟然出现了新问题,如图:

新的问题

E试验 禁用语言包打开eclipse,然后打开class文件查看结果如图对比他们的差异



 

第一行://disassembler_fieldhasconstant = =编译自disassembler_enclosingmethodheader = 外层方法:TestLoop.java (版本 1.5:49.0,超级位)

正确的为:// Compiled from TestLoop.java (version 1.5 : 49.0, super bit)

确认:disassembler_fieldhasconstant和disassembler_enclosingmethodheader 未正确解析

对比两个资源文件得到结论:disassembler_begincommentline=//disassembler_fieldhasconstant \= \=

未正确拆分为两行导致的,修改为:

disassembler_begincommentline = //\
disassembler_fieldhasconstant =\ =\

启用汉化插件,重新打开eclipse察看class,确实有改变了,故此发现故障出现地方!

 

不断地修改message即可完全解决问题,解决问题后的messages_zh文件为:messages_zh.properties

至此问题彻底解决(我把一些他们没有翻译为中文的配置都干掉了 ^ ^)

 

经验:

1 发布的东西不见得没有bug, ^ ^

2 英文要学好,E文不好就不去汇报bug了

3 调试功底需要不断的摸索才可以提高!

 

可能有人说无法察看源代码,那就需要rcp开发版了,我的环境是eclipse-rcp 3.3版本的!故可以查看eclipse的源代码!

直接建立eclipse插件项目,然后把jdt包引入,通过查找java类就可以快速定位源代码了

^ ^

 

2009-02-14

今天打算开始使用eclipse3.4,发现这个bug依然存在,打算解决这个问题:
java.lang.IllegalArgumentException: Unmatched braces in the pattern.
at java.text.MessageFormat.applyPattern(MessageFormat.java:476)
at java.text.MessageFormat.<init>(MessageFormat.java:350)
at java.text.MessageFormat.format(MessageFormat.java:811)
at org.eclipse.jdt.internal.core.util.Messages.bind(Messages.java:384)
at org.eclipse.jdt.internal.core.util.Messages.bind(Messages.java:350)
at org.eclipse.jdt.internal.core.util.Disassembler.disassemble(Disassembler.java:932)
at org.eclipse.jdt.internal.core.util.Disassembler.disassemble(Disassembler.java:290)

1 创建RCP项目,添加org.eclipse.jdt.core依赖
2 打开文件org.eclipse.jdt.internal.core.util.Disassembler 第932行
然后快速定位到资源文件org.eclipse.jdt.internal.core.util.messages
打开语言包文件
\eclipse-rcp-ganymede-SR1-win32\eclipse\plugins\org.eclipse.jdt.core.nl_zh_3.4.0.v20090208043401.jar
解压messages_zh.properties文件
根据上次的解决(空格被错误翻译了,空格为"\ "翻译后变成了"\"成了续行符号了)搜索"\\$"替换为"\ "就可以解决这个问题了!
还有个别的再改改基本就可以正确了

修改后的文件properties_zh.properties

 

2009-02-16

今天我发现了语言包依然有问题,原来在English版本下可以使用的到中文下无法正常使用了!具体是:JInto的快速提示如果选中的话,导致快速提示失败,如果不选中又发现快速提示中的文字出现了乱码,具体是函数的返回值描述部分 符号":"变成了\xU123,具体不太清楚了,反正感觉就是这个message有问题导致了eclipse运行有问题。

 

现在发现了问题,也明白了为什么开源需要大家参与,如果我们不去修复这些问题,那么后来人就会对软件失去信心,或者对软件形成错误的认识(eclipse本身就无法实现这个功能),国内使用中文的需求还是比较大的,如果我们不贡献力量,对于国内软件的发展确实存在小小的影响,开源的意义还是很重要的!而且非常重要!^ ^

 

又发现了一个bug:有6个国际化文件的中文化有问题,表现在":"被错误转化了多了一个"\"变成了两个"\\"导致错误国际化了,解决办法:使用rar搜索*.properties文件中的\\u????(具体不记得了),然后再修复错误即可^ ^

  • 大小: 68.2 KB
  • 大小: 11 KB
  • 大小: 68.2 KB
  • 大小: 139.5 KB
  • 大小: 18.3 KB
分享到:
评论
3 楼 skzr.org 2009-02-14  
今天打算开始使用eclipse3.4,发现这个bug依然存在,打算解决这个问题:
java.lang.IllegalArgumentException: Unmatched braces in the pattern.
at java.text.MessageFormat.applyPattern(MessageFormat.java:476)
at java.text.MessageFormat.<init>(MessageFormat.java:350)
at java.text.MessageFormat.format(MessageFormat.java:811)
at org.eclipse.jdt.internal.core.util.Messages.bind(Messages.java:384)
at org.eclipse.jdt.internal.core.util.Messages.bind(Messages.java:350)
at org.eclipse.jdt.internal.core.util.Disassembler.disassemble(Disassembler.java:932)
at org.eclipse.jdt.internal.core.util.Disassembler.disassemble(Disassembler.java:290)

1 创建RCP项目,添加org.eclipse.jdt.core依赖
2 打开文件org.eclipse.jdt.internal.core.util.Disassembler 第932行
然后快速定位到资源文件org.eclipse.jdt.internal.core.util.messages
打开语言包文件
\eclipse-rcp-ganymede-SR1-win32\eclipse\plugins\org.eclipse.jdt.core.nl_zh_3.4.0.v20090208043401.jar
解压messages_zh.properties文件
根据上次的解决(空格被错误翻译了,空格为"\ "翻译后变成了"\"成了续行符号了)搜索"\\$"替换为"\ "就可以解决这个问题了!
还有个别的再改改基本就可以正确了
2 楼 skzr.org 2009-01-23  
有呵呵,搞Eclipse RCP当然需要国际化了!
所以汉化还是需要的!自从3.3后国际化幸亏有宝贝项目来保证!
1 楼 ivyshark 2009-01-17  
用什么语言包啊 浪费时间么

相关推荐

    eclipse3.3.X版本中文语言包

    "eclipse3.3.X版本中文语言包"就是为了解决这个问题而存在的,它提供了Eclipse的中文本地化支持,使得用户可以更方便地理解和操作Eclipse的各项功能。 这个中文语言包适用于Eclipse 3.3.x系列版本。在Eclipse的历史...

    eclipse3.4中文语言包 eclipse3.4汉化包

    对于中国用户来说,Eclipse3.4中文语言包的出现极大地改善了用户体验,使得界面和文档完全本地化,方便了中文用户的操作。 汉化包的使用通常涉及以下几个步骤: 1. **下载汉化包**:首先,你需要从可靠来源下载...

    eclipse3.3 and 3.4中文包+BIRT中文教程

    通过这个"eclipse3.3-3.4中文包.rar"文件,用户可以获得Eclipse 3.3和3.4的中文界面和文档,便于中国用户更好地理解和使用。而"BIRT中文说明.rar"则提供了关于BIRT的中文指南,帮助开发者快速掌握BIRT报表设计和实现...

    Eclipse3.3中文语言包

    在Eclipse3.3中,"中文语言包"是一个至关重要的组件,尤其是对于中国用户来说,它使得界面完全汉化,使得那些不熟悉英文的开发者能够更轻松地理解和操作Eclipse。这个语言包包括了所有菜单、工具栏、对话框和帮助...

    eclipse多国语言包3.4 eclipse语言包3.4eclipse汉化3.4(注意eclipse版本为3.4)

    eclipse 多国语言包 使用方法: (1)先关掉Eclipse (2)将语言包解压缩,并给这个目录取个名,例如取名为language。 (3)将此目录复制到Eclipse的安装目录下,注意,language目录下有一个eclipse子...

    eclipse3.3 中文语言包

    Eclipse官方在3.3版本之后,不再直接提供官方的中文语言包,而是委托给第三方组织进行维护和更新。这意味着,用户需要从非官方渠道获取这些语言资源,这往往涉及到下载多个组件和插件。 这个压缩包文件包含了所有...

    Eclipse3.3 svn插件

    Eclipse 是一个著名的开源集成开发环境(IDE),广泛用于Java应用程序的开发,但它也支持其他编程语言通过安装相应的插件。在Eclipse中,Subversion(SVN)插件是开发者进行版本控制的重要工具,它使得用户能够方便...

    Eclipse3.4语言包.ZIP

    "Eclipse3.4语言包.ZIP"是一个为Eclipse 3.4版本准备的本地化语言包,它包含了各种语言的翻译,使得用户可以根据自己的需求将Eclipse的工作界面调整为熟悉的语言,比如中文、英文、法文等。 Eclipse 3.4,也被称为...

    Eclipse3.3 插件安装中文手册

    2. 将插件包内的`features`和`plugins`目录下的所有文件拷贝到Eclipse的`features`和`plugins`目录下。 **注意事项**:这种方法安装的插件不可逆,即无法轻松卸载,不便于插件的管理和更新。 ##### 非侵入式安装 ...

    Tomcat6.0+Eclipse3.3+Lomboz3.3图文配置详解

    【正文】 本篇文章将详细介绍如何在Windows XP SP2环境下...需要注意的是,随着技术的发展,这些工具和框架的更新迭代非常快,现在的最新版本可能已经远超6.0和3.3,建议使用更现代的版本以获取更好的性能和特性支持。

    eclipse3.3中文包

    Eclipse 3.3中文包是一款专为Eclipse 3.3版本设计的语言本地化工具,旨在为用户提供简体中文的界面,使中国用户在使用Eclipse开发环境时能够更加便捷地理解和操作各项功能。Eclipse作为一个开源的集成开发环境(IDE...

    Eclipse3.3简体中文安装包

    Eclipse3.3简体中文安装包是一款专为开发者设计的集成开发环境(IDE)的中文语言包,它使得原本英文界面的Eclipse3.3版本变得更加友好,方便了中文用户进行软件开发工作。Eclipse作为一款开源的、跨平台的开发工具,...

    eclipse 3.4 中文语言包

    #eclipse-jee-ganymede-SR2-win32 #官方最新中文语言包 #将文件解压到eclipse安装目录 更新日期: v20090308043402

    配置Eclipse 3.3 + tomcat 6.0 + lomboz 3.3进行Web开发

    ### 配置Eclipse 3.3 + Tomcat 6.0 + Lomboz 3.3 进行Web开发 #### 一、Eclipse 3.3 的选择与安装 **Eclipse 3.3 (Europa)**是Eclipse在2007年发布的一个重要版本,该版本在功能和性能上都有显著提升。对于Web开发...

    Eclipse 3.3 中文PERL插件

    标题 "Eclipse 3.3 中文PERL插件" 提到的是在Eclipse集成开发环境中安装和使用PERL语言的扩展插件。Eclipse是一款广泛使用的开源Java IDE,但通过插件支持,它也可以用于其他编程语言如PERL。在Eclipse 3.3版本中,...

    Eclipse 3.3中文包

    在Eclipse 3.3中,最重要的一项更新是引入了“Europa”计划,这是一个多语言平台的整合,将多个Eclipse项目组合在一个统一的发行版中。这个版本包含了对Java开发、Web开发、软件模型驱动工程(MDA)等多个领域的增强...

    eclipse3.3中文包.rar

    - **多语言支持**:Eclipse一直致力于提供多语言界面,3.3版的中文包正是为了满足中国开发者的需求,使他们能够在熟悉的语言环境下进行开发工作。 - **插件改进**:Eclipse 3.3对插件系统进行了升级,使得插件之间...

    jadclipse for eclipse3.3

    Jadclipse是一款针对Eclipse集成开发环境的反编译插件,尤其在你提到的Eclipse 3.3版本中,它提供了对Java字节码进行反编译的功能。这款插件使得开发者能够查看并理解已编译的Java类文件的源代码,即便原始的源代码...

Global site tag (gtag.js) - Google Analytics