如何在ant的build.xml中设置-Dfile.encoding?
我已经有了iso-8859-1编码的java源文件。当我运行ant时,我得到“警告:用于编码UTF-8的不可映射字符”。如果我运行ant -Dfile.encoding = iso-8859-1或将encoding =“ISO-8859-1”添加到每个javac语句,我可以避免这种情况。如何在ant的build.xml中设置-Dfile.encoding?
有没有办法在build.xml中全局设置属性? < property name =“file.encoding”value =“ISO-8859-1”>不起作用。我知道我可以为每个javac语句添加一个foo = ISO-8859-1属性并将encoding =“$ {foo}”,但我试图避免这种情况。
有几个选项:
- 添加
-Dfile.encoding=iso-8859-1
您ANT_OPTS
环境变量 - 使用
<presetdef>
设置默认为所有<javac>
调用的编码
Ant本身不能设置系统属性,但是如果你真的想,你可以编写一个java程序来设置系统属性,并在Ant中执行它。
如果你有文件特别是,最好告诉javac,而不是强制整个JVM使用特定的编码。由于这个原因,javac task具有编码属性。
<javac srcdir="${src.dir}" destdir="${build.classes.dir}" encoding="iso-8859-1" />
但实际上,您应该只将源文件转换为UTF-8。 UTF-8中的所有东西味道都更好。 :)
即使您将内容转换为UTF-8,您有时也必须拥有一个干净的环境(LC_ALL = C ),那里非常方便。 – user1050755 2012-08-16 06:40:35
在更改构建文件之前,我得到像下面的java编译错误。
ApplicationConstant.java:73:错误:用于编码ASCII字符不可映射 public static final String INVALID_MDTVERSION_SECOND = " This not compatible with the server’s Version";
我有遇到此错误时我曾经有蚂蚁的java目标为:
<javac encoding="ascii"...>
比我如下更改
<javac encoding="iso-8859-1" ...>
此问题得到解决。
这个问题应该同时在四个地方解决:http://*.com/a/34225997/715269 – Gangnus 2015-12-11 14:40:47