ICEpdf - MissingResourceException:在应用程序启动期间找不到基本名称org.icepdf.ri.resources.MessageBundle,语言环境de_DE的捆绑



应用程序使用ICEpdf,有时启动后无法打印。
重新启动后它工作正常,但每次都这样做很乏味。

日志中的异常显示:

..... (own created exception) .....
nested exception is: java.util.MissingResourceException: Can't find bundle for base name org.icepdf.ri.resources.MessageBundle, locale de_DE
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at org.icepdf.ri.common.SwingController.<init>(SwingController.java:274)
at org.icepdf.ri.common.SwingController.<init>(SwingController.java:257)
.....

重复直到重新启动。

我已经检查了使用的库icepdf-viewer-4.2.2,在\org\icepdf\ri\resources中,有MessageBundle_de.properties文件。

有没有人经历过这种情况,并可以支持/建议如何解决它?

最有可能的问题是由 Java 版本从 1.6 更改为 1.8 引起的
解决方法是缓存正在使用的资源包。 如果在 SwingController 创建期间出现 MissingResourceException 异常,请捕获它并创建 ResourceBundle:

...
SwingController sc = null;
...
} catch (MissingResourceException e) {
ResourceBundle bundle = new PropertyResourceBundle(new ByteArrayInputStream(new byte[0]));
sc = new SwingController(bundle);
}
...

希望这对面临相同问题的人有所帮助。

最新更新