产品缺少片段
Fragment Missing From Product
我为我们的一个项目创建了一个本地化片段,它在从 IDE 启动时运行良好,但在从导出产品启动时完全没有效果。
片段本身只有两个文件,一个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 包含片段看起来合理的内容
没有任何效果,所以我没有想法。
可能是什么问题?如何调试应用程序?
这是一个令人难以置信的愚蠢问题。消息文件 应该 的名称为 messages_de_DE_XX.properties (注意最后两段是大写的)。
我的猜测是它在从 IDE 启动时有效,因为 Eclipse 使用文件系统,因此使用 OS 标准,即 "ignore casing" for Windows。
当从成品开始时,文件位于 JAR 中,其中大小写很重要。
我为我们的一个项目创建了一个本地化片段,它在从 IDE 启动时运行良好,但在从导出产品启动时完全没有效果。
片段本身只有两个文件,一个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 包含片段看起来合理的内容
没有任何效果,所以我没有想法。
可能是什么问题?如何调试应用程序?
这是一个令人难以置信的愚蠢问题。消息文件 应该 的名称为 messages_de_DE_XX.properties (注意最后两段是大写的)。
我的猜测是它在从 IDE 启动时有效,因为 Eclipse 使用文件系统,因此使用 OS 标准,即 "ignore casing" for Windows。
当从成品开始时,文件位于 JAR 中,其中大小写很重要。