Ответ 1
Несколько вариантов:
- добавьте
-Dfile.encoding=iso-8859-1
в переменную средыANT_OPTS
- используйте
<presetdef>
для установки значений по умолчанию для всех ваших<javac>
-вызовов
У меня есть исходные файлы java с кодировкой iso-8859-1. Когда я запускаю ant, я получаю предупреждение: unmappable character для кодирования UTF-8 ". Я могу избежать этого, если я запустил ant -Dfile.encoding = iso-8859-1 или добавлю кодировку =" ISO-8859-1" в каждый оператор javac.
Есть ли способ установить свойство глобально внутри build.xml? < property name= "file.encoding" value = "ISO-8859-1" > не работает. Я знаю, что могу добавить свойство foo = ISO-8859-1 и установить кодировку = "$ {foo}" в каждый оператор javac, но я стараюсь избегать этого.
Несколько вариантов:
-Dfile.encoding=iso-8859-1
в переменную среды ANT_OPTS
<presetdef>
для установки значений по умолчанию для всех ваших <javac>
-вызововЕсли у вас есть файлы, закодированные определенным образом, лучше всего сказать javac, а не заставить JVM использовать конкретную кодировку. По этой причине javac task имеет атрибут кодирования.
<javac srcdir="${src.dir}" destdir="${build.classes.dir}" encoding="iso-8859-1" />
Но на самом деле вам нужно просто преобразовать исходные файлы в UTF-8. Все лучше в UTF-8.:)
Перед изменением файла сборки я получаю ошибку компиляции java, как показано ниже.
ApplicationConstant.java:73: ошибка: неприменимый символ для кодирования ascii
public static final String INVALID_MDTVERSION_SECOND = " This not compatible with the server’s Version";
Я столкнулся с этой ошибкой, когда я использовал ant java target как:
<javac encoding="ascii"...>
Чем я изменился ниже
<javac encoding="iso-8859-1" ...>
Эта проблема решена.
Ant сам не может установить системные свойства, но если вы действительно этого захотите, вы можете написать java-программу, которая устанавливает системное свойство и выполняет это из Ant.