java - 如何在ant的build.xml中设置-Dfile.encoding?




character-encoding javac (3)

我有iso-8859-1编码的java源文件。 当我运行ant时 ,我得到“警告:编码UTF-8的不可映射的字符”。 如果我运行ant -Dfile.encoding = iso-8859-1或者将encoding =“ISO-8859-1”添加到每个javac语句中,我可以避免这种情况。

有没有办法在build.xml中全局设置属性? <property name =“file.encoding”value =“ISO-8859-1”>不起作用。 我知道我可以添加一个foo = ISO-8859-1属性并为每个javac语句设置encoding =“$ {foo}”,但我试图避免这种情况。

https://code.i-harness.com


Ant本身无法设置系统属性,但如果您真的想要,可以编写一个设置系统属性的java程序,并从Ant中执行该程序。


一些选择:

  1. -Dfile.encoding=iso-8859-1添加到ANT_OPTS环境变量中
  2. 使用<presetdef>设置所有<javac>调用的默认值

如果你有以特定方式编码的文件,最好告诉javac,而不是强迫整个JVM使用特定的编码。 出于这个原因, javac任务具有编码属性。

<javac srcdir="${src.dir}" destdir="${build.classes.dir}" encoding="iso-8859-1" />

但实际上,您应该将源文件转换为UTF-8。 在UTF-8中,一切都味道更好。 :)





javac