应用程序使用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和icepdf\ri\resources那里的是 MessageBundle_de.properties文件。
有没有人经历过这种情况,并能支持/建议如何解决它?
发布于 2019-11-01 14:41:40
最可能的原因是Java版本从1.6更改为1.8。
解决办法是缓存正在使用的资源包。如果在MissingResourceException创建过程中出现SwingController异常,则捕获它并创建defaule ResourceBundle:
...
SwingController sc = null;
...
} catch (MissingResourceException e) {
ResourceBundle bundle = new PropertyResourceBundle(new ByteArrayInputStream(new byte[0]));
sc = new SwingController(bundle);
}
...希望这对面临同样问题的人有所帮助。
https://stackoverflow.com/questions/58398676
复制相似问题