Фрагмент отсутствует в продукте - PullRequest
0 голосов
/ 02 октября 2019

Я создал фрагмент локализации для одного из наших проектов, который прекрасно работает при запуске из IDE, но совсем не при запуске из экспортируемого продукта.

Сам фрагмент имеет только два файла:1003 * MANIFEST.MF :

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: L10N Fragment
Bundle-SymbolicName: org.acme.module.nl_xx;singleton:=true
Bundle-Version: 3.0.6.qualifier
Bundle-Vendor: ACME
Fragment-Host: org.acme.module;bundle-version="[1.0.0,2.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-11

... и файл свойств messages_de_de_xx.properties :

Special = Something

Продукт запускается с -nl de_DE_XX и -Djava.language=de -Djava.country=DE -Djava.variant=XX. Как уже отмечалось, он работает из Eclipse, а не из готового EXE.

Вещи, которые я пытался отладить / исправить:

  • убедился, что экспортируемый продукт содержит фрагмент
  • , что build.properties /Фрагмент JAR содержит два вышеупомянутых файла
  • , проигрываемых со страной и вариантом (переключенные верхний и нижний регистры)
  • очищает область экземпляра OSGi (то есть настройки приложения)
  • убедился, что фрагмент разрешен с помощью консоли OSGi
  • протестировал его с файлом сообщений для en_UK_XX (который основан на английской локализации вместо немецкой)
  • убедился, что файлы configuration \ org.eclipse.equinox.simpleconfigurator \ bundles.info и artifacts.xml содержат что-то, что выглядит правдоподобно для фрагмента

Ничего не сработало, поэтому яУ меня нет идей.

В чем может быть проблема? Что я могу сделать для отладки приложения?

1 Ответ

0 голосов
/ 04 октября 2019

Это невероятно глупая проблема. Файл сообщений: предполагается, что имеет имя messages_de_DE_XX.properties (обратите внимание, что последние два сегмента указаны в верхнем регистре).

Я предполагаю, что это работает при запуске из IDE, потому что Eclipse использует файловую систему и, следовательно, стандарт ОС, который "игнорирует регистр" для Windows.

При запуске из готового продукта файлы находятся в JAR-файлах, где важен регистр.

...