最近项目要使用openfire来进行插件开发,下载openfire源码导入工程后,运行源码的build目录下的build.xml中的ant命令,其中run命令是启动openfire服务器,结果控制台输出乱码,如图所示:
run命令的原始ant脚本是:
<!-- run =================================================================================== --><target name="run" description="Starts Openfire inline to the build process."><available file="${target.openfireHome}" type="dir" property="openfire.found"/><fail unless="openfire.found"message="Can't find openfire, run 'ant openfire' or specify with -Dtarget.openfireHome."/><condition property="run.debug"value="-Xdebug -Xint -server -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"><isset property="debug"/></condition><property name="run.spawn" value="false"/><java jar="${target.openfireHome}/lib/startup.jar" fork="true" spawn="${run.spawn}"dir="${target.openfireHome}/bin"><jvmarg line="${run.debug} -DopenfireHome=${target.openfireHome}"/></java></target>
通过搜索网上的解决办法,找到两种修改方式解决乱码问题,都是在<java></java>命令中加上一条语句。
<!-- run =================================================================================== --><target name="run" description="Starts Openfire inline to the build process."><available file="${target.openfireHome}" type="dir" property="openfire.found"/><fail unless="openfire.found"message="Can't find openfire, run 'ant openfire' or specify with -Dtarget.openfireHome."/><condition property="run.debug"value="-Xdebug -Xint -server -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"><isset property="debug"/></condition><property name="run.spawn" value="false"/><java jar="${target.openfireHome}/lib/startup.jar" fork="true" spawn="${run.spawn}"dir="${target.openfireHome}/bin"><jvmarg line="${run.debug} -DopenfireHome=${target.openfireHome}"/><jvmarg value="-Dfile.encoding=UTF-8"/><!--<sysproperty key="file.encoding" value="UTF-8" />--></java></target>
即java命令中加上
<jvmarg value="-Dfile.encoding=UTF-8"/> 或者<sysproperty key="file.encoding" value="UTF-8" />任一即可解决。
解决后控制台正常输出中文。












