Подтвердить что ты не робот

Как установить -Dfile.encoding в ant build.xml?

У меня есть исходные файлы 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, но я стараюсь избегать этого.

4b9b3361

Ответ 1

Несколько вариантов:

  • добавьте -Dfile.encoding=iso-8859-1 в переменную среды ANT_OPTS
  • используйте <presetdef> для установки значений по умолчанию для всех ваших <javac> -вызовов

Ответ 2

Если у вас есть файлы, закодированные определенным образом, лучше всего сказать javac, а не заставить JVM использовать конкретную кодировку. По этой причине javac task имеет атрибут кодирования.

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

Но на самом деле вам нужно просто преобразовать исходные файлы в UTF-8. Все лучше в UTF-8.:)

Ответ 3

Перед изменением файла сборки я получаю ошибку компиляции 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" ...> 

Эта проблема решена.

Ответ 4

Ant сам не может установить системные свойства, но если вы действительно этого захотите, вы можете написать java-программу, которая устанавливает системное свойство и выполняет это из Ant.