在 Netbeans 中更改每个项目(非 maven)的 Jaxb 生成的文件编码

Change Jaxb Generated File Encoding Per project (non maven) in Netbeans

我有以下问题:

我在 NetBeans 8.2 中有一个 non maven 项目,它有 utf-8 编码

(如图所示 - 右键单击​​项目属性)。

在项目中,我创建了 JaxB xml bindig,因此在 generated 文件夹中生成了一些源代码。

然而 gerenreted 来源没有使用 utf-8 所以我得到了

error: unmappable character for encoding UTF-8

如果我尝试编译。

如果我在 (netbeans etc\netbeans.conf) 中更改 netbeans_default_options 以便它包含 -J-Dfile.encoding=UTF-8 行,则特定项目的问题已解决 - 一切都可以正常编译。

但这破坏了我的其他项目,这些项目不是 utf-8

我正在寻找不会影响我的其他项目的解决方案。

谢谢。

解决方案是添加以下内容

<arg value="-encoding"/>
<arg value="UTF-8"/>

进入ant脚本 里面 xml_binding_build

这样生成的 xjc 看起来像这样

<xjc package="mypackage" destdir="build/generated/jaxbCache/mypackage" catalog="catalog.xml">
            <classpath>
                <pathelement location="${src.dir}"/>
                <pathelement path="${jaxbwiz.xjcrun.classpath}"/>
            </classpath>
            <arg value="-xmlschema"/>
            <arg value="-encoding"/>
            <arg value="UTF-8"/>
            <schema file="xml-resources/jaxb/mypackage/mypackage.xsd"/>
            <depends file="xml-resources/jaxb/mypackage/mypackage.xsd"/>
            <produces dir="build/generated/jaxbCache/mypackage"/>
</xjc>

当然 xml_binding_build.xml 生成的 (自动),通常不应手动编辑。

不过,这种解决方法对我来说已经足够了,而且比将每个项目都转换为 utf-8 更好。