openfire运行ant命令控制台中文乱码问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pengchang_1981/article/details/53958606

最近项目要使用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" />任一即可解决。

解决后控制台正常输出中文。





猜你喜欢

转载自blog.csdn.net/pengchang_1981/article/details/53958606