在完成Eclipse插件开发之后,需要将项目导出为jar包,提供给使用者,放到Eclipse安装目录下plugins文件夹下进行安装。在打包过程中,会出现因项目工程源文件编码问题而导致中文乱码,使导出、打包失败。
问题重现:Windows 7下,使用Eclipse进行插件项目开发,Eclipse设置默认编码为UTF-8。导出插件项目时报错,如图:
注:设置导出目录为E:\.
导出过程中报错,并生成错误信息日志:
查看日志内容,确定问题为中文乱码:
通过网络查找得知,问题为Eclipse产品导出是通过Ant来完成的,默认编译编码是采用系统编码(中文操作系统为GBK编码),所以在打包时出现问题。参考: http://blog.sina.com.cn/s/blog_58e15df50100nn76.html 和 http://blog.sina.com.cn/s/blog_58e15df50100nna6.html ,得出以下解决方案:
方案一:(此方案在本文所遇问题中,经验证为不可行,急需解决方案的,可以直接跳至方案二)
参考http://blog.sina.com.cn/s/blog_58e15df50100nn76.html 或 http://blog.sina.com.cn/s/blog_58e15df50100nna6.html 中方案一,进行如下操作:
1)初始状态如图:
2)右键单击build.properites文件,PDE tools --> Create Ant Build File,如图:
会在同目录下出现build.xml和javaCompiler...args两个文件:
3)双击build.properties文件,在编辑器"Build"编辑页中勾选"Custom Build"复选框并保存,如图:
4)打开新出现的build.xml文件,在编译源码的步骤--javac任务中添加参数encoding="UTF-8",如图:
5)保存所有修改,导出插件。
经实验,无论是使用Eclipse的导出向导,还是直接以Ant命令运行build.xml,都只能得到编译后的项目文件夹(我们想要的插件jar包解压后的内容),如图:
进入文件夹,如图:
将此文件夹直接拷贝,或者使用各种jar命令将此文件夹打包再拷贝,至eclipse安装目录下plugins文件夹内,运行Eclipse均不能激活插件。
6)结论:在本文的问题环境下,该方案不可行。
方案二:
参考http://blog.sina.com.cn/s/blog_58e15df50100nna6.html 中方案二,如下:
不必采用方案一的方法;或者已按照方案的步骤操作过了,现在可以直接删除新出现build.xml和javaCompiler...args两个文件,并在build.properties编辑器中将"Custom Build"取消勾选。
直接在build.properties编辑器的"build.properties"编辑页中,在文件最后添加如下内容:
javacDefaultEncoding.. = UTF-8
如图:
保存修改后,直接使用Eclipse的导出向导,即可得到我们想要的jar包,如图:
将所得插件jar包安装发布,运行Eclipse,即可检验插件是否激活,并查看是否有中文乱码问题。
结论:该方案在本文的问题环境下有效。可以确定,在Eclipse默认编码为UTF-8编码时,开发插件项目,使用此方案可以有效解决开发、测试、打包发布和运行过程中的部分中文问题。
全文完。