Исходные данные:
- Java-проект: RCP-приложение
- файлы проекта в кодировке cp1251
- проект собирается под Linux (PDE-build)
Проблема:
- в полученном приложении в GUI кракозябы
1. Самое простое - это установка кодировки в настройках
2. Переход на использование кодировки utf-8
Если первое и так имело место, но не помогало при сборке, то второе по определенным причинам вообще неприемлемо.
Реальная причина:
При сборке Eclipse вызывает javac с кодировкой по умолчанию (зарегистрирован даже тикет такой у них). В Windows это прокатывает так как кодировка java-файлов cp1251 и javac по-умолчанию использует cp1251. А под линуксом javac по-умолчанию использует UTF-8. То есть проблема рисуется не при запуске приложения, а еще при компиляции плагинов.
Когда же код компилируется в Eclipse (не PDE-build) то он (Eclipse) ведет себя умнее, т.е. помнит о настройках.
Поэтому для большинства случаев установки кодировки в настройках вполне хватает.
Решение
Правильное решение состоит в указании кодировки в файле build.properties для каждого плагина.
Делается это добавлением строки
javacDefaultEncoding.. = cp1251
Обратите внимание на две точки после javacDefaultEncoding - это не ошибка.
В результате файл build.properties должен выглядеть примерно так:
source.. = src/
output.. = bin/
javacDefaultEncoding.. = cp1251
bin.includes = META-INF/,\
.,\
plugin.xml,\
plugin.properties,\
plugin_ru.properties
src.includes = META-INF/,\
.,\
plugin_ru.properties,\
plugin.xml,\
plugin.properties,\
src/