仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1741|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA教程之修正IntelliJ IDEA中CVS插件以兼容其他...

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:49:25 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
唉!都是钱闹的1.Swing和.net开发比较------从市场份额看.net开发主要占据大部分的中小型和中型的的桌面开发,原因是它封装了很多工具
论坛会商请见:http://community.csdn.net/Expert/topic/3492/3492097.xml?temp=.1520502

IDEA的CVS是我见过功效最强,最好用的CVS客户端,其与IDEA工程的整合几近到达了完美无缺的境地。一个团队假如一致利用IDEA,则仅在CVS工具这一方面就会年夜年夜加重团队成员的进修包袱。IDEA的CVS插件撑持两种编码体例:UTF8和ASCII。原本是填补了CVS体系自己不撑持国际化的缺点。可是在实践利用中,却发明这两种编码体例有些“高不成低不就”。

在UTF8编码体例下,当Commit的log信息为中文时,IDEA会将其举行UTF8编码再发送给服务器,而一样平常的CVS服务器(好比我用的CVSNT)会不举行任何转化的将其保留到CVS堆栈中。如许的了局就是IDEA本人可以看到各个版本的log信息,而其他工具如WinCVS,TortoriseCVS和CVSTracNT等跟踪软件都没法准确的解码。反之,假如用其他CVS客户端提交了中文log的话,IDEA里的ShowHistory命令就会报错。让人最为不解的是,仅仅只要log信息是被编码过的,源文件中假如含有中文,则仍旧接纳GB的编码体例。假如你是CVS的办理员,会在xxxxx.java,v文件中同时发明GB编码和UTF8编码的中文。怎能稳定?别的在UTF8编码体例下,当源文件中含有中笔墨符时,Annotate功效是不克不及利用的。

假如不利用UTF8编码,即便用ASCII编码的时分,Annotate功效是没有成绩,可是Commit的时分没法提交中文log信息,报编码毛病。ShowHistory时看外界提交的中文log是乱码。

说了这么多,一句话,中文编码成绩。怎样办理呢?下面的帖子发了半年也没有结,在IDEA官方论坛上也问过,可是由于都是老外,最初仍是没有幻想的谜底。我于几日前失掉了Irida版本,发明CVS插件的jar包并没有搅浑(4.5版本是搅浑的,要读几乎是不成能的),因而举行了反编译(呵呵不要告我),经由剖析发明,终极的成绩出在org
etbeanslibcvsclientio目次下的AsciiOutputStreamWriter和AsciiInputStreamReader中。经由复杂的修正(只需办理过Java的中文编码成绩,这个修正不是甚么难事),终究把这个成绩弄定了!请于http://www.jroller.com/resources/WarBaby/CvsPatchForIrida.zip下载这个补钉,翻开%IDEAHOME%pluginscvsIntegrationlibcvsIntegration.jar,用补钉里的class文件掩盖org
etbeanslibcvsclientio下的同名文件便可。这是Irida的修正办法,4.5版本的稍有分歧,这里只点一句,org
etbeanslibcvsclientioAsciiOutputStreamWriter.java==orgaaaf.javaorg
etbeanslibcvsclientioAsciiInputStreamReader.java==orgaaac.java请喜好者本人反编译再编译就行了。

修正后,请!不要!选中UTF-8encoding,下面的成绩就完整办理了。关于之前用IDEA提交的中文log,如今是显现乱码的,可是假如选中UTF-8encoding则和之前的IDEA完整一样。以是请宁神利用。只要一点必要申明一下,我在AsciiInputStreamReader中,为了效力成绩,建了几个静态变量,大概会线性不平安。可是我瞥见IDEA操纵CVS的时分,窗口是模态的,没法举行其他操纵。万一有成绩请自行处置吧。

进而能拉拢大多数程序员用windows产品。并且从ASP.NETAJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net的,如果跨平台的.net还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。
不帅 该用户已被删除
沙发
 楼主| 发表于 2015-2-15 23:39:08 | 显示全部楼层
是一种语言,用以产生「小应用程序(Applet(s))
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-9 23:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表