java - ¿Cómo configuro-Dfile.encoding dentro de build.xml de ant?
character-encoding javac (4)
Tengo archivos de origen java con codificación iso-8859-1. Cuando ejecuto ant , me aparece "warning: carácter no intercambiable para codificar UTF-8". Puedo evitar esto si ejecuto ant -Dfile.encoding = iso-8859-1 o agrego encoding = "ISO-8859-1" a cada declaración javac.
¿Hay una manera de establecer la propiedad globalmente dentro de build.xml? <property name = "file.encoding" value = "ISO-8859-1"> no funciona. Sé que puedo agregar una propiedad foo = ISO-8859-1 y establecer encoding = "$ {foo}" a cada declaración javac, pero estoy tratando de evitar eso.
Algunas opciones:
- añada
-Dfile.encoding=iso-8859-1
a su variable de entornoANT_OPTS
- use
<presetdef>
para configurar los valores predeterminados de todas sus invocaciones<javac>
Ant no puede establecer las propiedades del sistema, pero si realmente lo desea, puede escribir un programa java que establezca las propiedades del sistema y ejecutarlas desde Ant.
Antes de cambiar el archivo de compilación, obtengo el error de compilación de Java como se muestra a continuación.
ApplicationConstant.java:73: error: carácter no reemplazable para codificar public static final String INVALID_MDTVERSION_SECOND = " This not compatible with the server’s Version";
ASCII public static final String INVALID_MDTVERSION_SECOND = " This not compatible with the server’s Version";
Me he encontrado con este error cuando solía tener ant java target como:
<javac encoding="ascii"...>
Que tengo cambio como abajo
<javac encoding="iso-8859-1" ...>
Este problema se resolvió.
Si tiene archivos codificados de una manera particular, probablemente es mejor decirle a javac que en lugar de forzar a toda la JVM a usar una codificación particular. La tarea javac tiene un atributo de codificación por este motivo.
<javac srcdir="${src.dir}" destdir="${build.classes.dir}" encoding="iso-8859-1" />
Pero en realidad, solo debes convertir los archivos de origen a UTF-8. Todo sabe mejor en UTF-8. :)