osgi项目所在的workshop,osgi项目中的java文件都是UTF-8的,并且在eclipse中能够编译,但是,在osgi项目上点击右键,然后按如下步骤点击:
Export -> Plug-in Developement -> Deployable plug-ins and fragments
最后点击"Finish",生成osgi项目对应的jar时报错,并且生成logs.zip文件。从logs.zip文件中的@dot.log文件中可以找到问题原因,是中文乱码问题。
解决办法有三种:
1.修改eclipse启动参数
eclipse启动时,是把文件都当成GBK格式处理的,按如下步骤操作后,可以看到file.encoding=GBK
Help -> About Eclipse IDE -> Installation Details -> Configuraton
可以修改这个值,在eclipse.ini中添加如下内容,然后重启
-Dfile.encoding=UTF-8
重启后,在Configuraton就可以看到file.encoding=UTF-8了。
2.打包时不生成新的class
Export -> Plug-in Developement -> Deployable plug-ins and fragments
在Options标签下,选中Use class files compiled in the workshop
3.修改默认的build.xml
osgi项目生成osgi jar是通过运行一个默认的build.xml实现的,只要给这个文件中javac的添加参数就可以解决问题。
在osgi项目build.properties上点击右键,然后按如下步骤点击:
PDE Tools -> Create Ant Build File
会生成build.xml文件,然后打到<javac>,在其后添加encoding="utf-8",添加后的结果大致如下:
<javac destdir="${build.result.folder}/@dot" failοnerrοr="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bundleBootClasspath}" source="${bundleJavacSource}" target="${bundleJavacTarget}" encoding="utf-8">
接着,打开build.properties,在Build标签下,选中Custom Build,这时再进行导入时,就会使用这个定制的build.xml编译。