Как мне установить -Dfile.encoding в файле build.xml муравья? - PullRequest
46 голосов
/ 27 августа 2009

У меня есть исходные файлы java с кодировкой iso-8859-1. Когда я запускаю ant , я получаю «предупреждение: не отображаемый символ для кодировки UTF-8». Я могу избежать этого, если я запускаю ant -Dfile.encoding = iso-8859-1 или добавляю encoding = "ISO-8859-1" к каждому выражению javac.

Есть ли способ установить свойство глобально в build.xml? не работает. Я знаю, что могу добавить свойство foo = ISO-8859-1 и установить encoding = "$ {foo}" для каждого оператора javac, но я пытаюсь избежать этого.

Ответы [ 4 ]

68 голосов
/ 27 августа 2009

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

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

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

33 голосов
/ 27 августа 2009

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

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

Перед изменением файла сборки я получаю ошибку компиляции Java, как показано ниже.

ApplicationConstant.java: 73: ошибка: не отображаемый символ для кодировки ascii public static final String INVALID_MDTVERSION_SECOND = " This not compatible with the server’s Version";

Я сталкивался с этой ошибкой, когда имел обыкновение иметь цель ant java как:

 <javac encoding="ascii"...>

Чем я изменился, как показано ниже

<javac encoding="iso-8859-1" ...> 

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

1 голос
/ 27 августа 2009

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

...