2013-11-26 2 views
2

Недавно мы переносили задания java build с сервераA на серверB, исходный код java (содержащий китайские символы) хорошо компилируется на исходном сервереA с Ant (< javac encoding = "GBK" ... >), но, когда мы проверили один и тот же код на новом сервере Б и запустили те же антивирусные скрипты, произошли ошибки кодирования как «неуправляемый символ для кодирования GBK». (Версия JDK такая же).Ошибка кодирования компиляции Javac

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

Есть ли какие-либо настройки, которые могут потенциально вызвать эту проблему, настройки ОС?

Спасибо.

+2

Вы уверены, что это тот же исходный код? Сопоставьте файл для одного и того же файла на двух серверах. Кодировка символов, возможно, что-то испортила при проверке на сервере. –

+0

@TedHopp Я думаю, вы имеете в виду, что проверка из одного и того же репозитория фактически может получить различные кодировки файлов из-за возможных сбоев. Я сравнивал файлы ошибок с serverA и serverB с Beyond Compare, они, похоже, одинаковы. – foolhunger

+0

Очень странно ... Я бы проверял 'JAVA_HOME' и' javac -version', чтобы убедиться, что используется правильная Java. –

ответ

2

После некоторых расследует

  1. Ява файлы имеют проблемы кодирования GBK.
  2. На сервереB скрипт сборки Ant имеет параметры javac source = 1.6 target = 1.6, а serverA нет.

После удаления этих 2 параметров на задаче <javac> с сервераB осложнение преуспевает.

Мы по-прежнему не понимаем точной причины этого, но по крайней мере проблема решена на данный момент.

Если у вас есть какие-либо подсказки, почему это произошло, пожалуйста, оставьте комментарии ниже.

Thanks

Смежные вопросы