0

应用程序使用 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文件。

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

4

1 回答 1

0

最有可能的问题是 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);
}
...

希望这可以帮助面临同样问题的人。

于 2019-11-01T14:41:40.457 回答