java - 如何使用 Apache Ant 以 UTF-8 编码 Java 文件?

标签 java ant encoding build.xml

在我的 build.xml 文件中,我通过 cxf 获取了一些 Java 文件。其中一些 Java 文件需要以 UTF-8 编码。如何使用 Ant 将编码更改为 UTF-8?

PS:我找到了有关如何将 javac 的编码设置为 UTF-8 的说明,但在 javac 之前,我需要 Java 文件采用 UTF-8。否则我会得到一个错误:

warning: unmappable character for encoding utf-8

这是我的代码:

<macrodef name="lpwservice">
    <attribute name="name"/>
    <attribute name="package"/>
    <sequential>
        <property name="wsdlfile" value="${portal.basedir}/lpw/wsdl/@{name}.wsdl"/>

        <mkdir dir="${portal.basedir}/lpw/wsdl"/>
        <get src="${lpw.baseuri.cxf}/@{name}?wsdl" dest="${portal.basedir}/lpw/wsdl/@{name}.wsdl.new"/>
        <if>
            <and>
                <filesmatch file1="${portal.basedir}/lpw/wsdl/@{name}.wsdl" file2="${portal.basedir}/lpw/wsdl/@{name}.wsdl.new"/>
                <uptodate targetfile="${portal.basedir}/lpw-wsdl.jar" srcfile="${portal.basedir}/lpw/wsdl/@{name}.wsdl"/>
            </and>
            <then>
                <echo message="${wsdlfile} is up to date" level="info"/>
                <delete file="${portal.basedir}/lpw/wsdl/@{name}.wsdl.new"/>
            </then>
            <else>
                <echo message="${portal.basedir}/lpw/wsdl/@{name}.wsdl needs update" level="info"/>
                <move file="${portal.basedir}/lpw/wsdl/@{name}.wsdl.new" tofile="${portal.basedir}/lpw/wsdl/@{name}.wsdl" overwrite="true" />
                <java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true" failonerror="true">
                    <arg value="-client"/>
                    <arg value="-d"/>
                    <arg value="${portal.basedir}/lpw/src"/>
                    <arg value="${portal.basedir}/lpw/wsdl/@{name}.wsdl"/>
                    <classpath>
                        <path refid="cxf.classpath"/>
                    </classpath>
                </java>
            </else>
        </if>
    </sequential>
</macrodef>

我在这里应该做什么来制作

<java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true" failonerror="true">

用 utf-8 编码 java 文件?

最佳答案

Ant 的 <copy> 任务具有属性 encodingoutputencoding .

单个 Java 文件

<copy file="myJavaFile.java" tofile="myJavaFile.java" overwrite="true"
    encoding="ISO-8859-1" outputencoding="UTF-8" />

目录中的所有 Java 文件

<property name="source.dir" location="/path/to/java/files" />

<copy todir="${source.dir}" overwrite="true"
    encoding="ISO-8859-1" outputencoding="UTF-8">
  <fileset dir="${source.dir}" includes="*.java" />
</copy>

只需更改 ISO-8859-1 Java 文件的编码格式。

关于java - 如何使用 Apache Ant 以 UTF-8 编码 Java 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12374324/

相关文章:

java - 如何将所有输入转义到 Velocity 模板

php - 警告 : PHPLoc enrichment not enabled or phploc. 在 phpDox 中未找到 xml

java - ant 运行时出现 NoClassDefFoundError

java - Apache ant 构建在 WSAD 中失败。 'package [com.company.myClass] does not exist"

python - Scrapy yield utf-8

asp.net-mvc - 不正确的 http header 字段值编码

java - 在 Apache poi 生成的 excel 中更改作者

java - LocalDate 和 DateTimeFormatter 无法在日语语言环境中正常工作

Java编码/解码一个字符串到/从一个长

java - 使用 JACOB 时出现 NoSuchMethodError