1

我一直在使用带有试用许可证的 jxbrpowerer 6.2。尝试在 OSGi 环境中加载它会产生以下错误:

Exception in thread "JavaFX Application Thread"     java.lang.ExceptionInInitializerError
at com.teamdev.jxbrowser.chromium.internal.ipc.IPC.getDefault(Unknown Source)
at com.teamdev.jxbrowser.chromium.BrowserContext.<init>(Unknown Source)
   (...)
    at com.sun.glass.ui.win.WinApplication$$Lambda$39/30523883.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:745)
Caused by: com.teamdev.jxbrowser.chromium.internal.ChromiumExtractorException: Failed to extract chromium binaries into C:\Users\Vladimir\AppData\Local\Temp\jxbrowser-chromium-43.0.2357.52.6.2
at com.teamdev.jxbrowser.chromium.internal.ChromiumExtractor.extract(Unknown Source)
at com.teamdev.jxbrowser.chromium.internal.ipc.IPC.<init>(Unknown Source)
at com.teamdev.jxbrowser.chromium.internal.ipc.IPC.create(Unknown Source)
at com.teamdev.jxbrowser.chromium.internal.ipc.IPC$a.<clinit>(Unknown Source)
... 15 more
Caused by: java.lang.IllegalArgumentException: The /chromium-windows.zip resource cannot be found in JAR files.
at com.teamdev.jxbrowser.chromium.internal.ZIPExtractor.extract(Unknown Source)
at com.teamdev.jxbrowser.chromium.internal.e.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 19 more

我可以在非 OSGi 环境中成功加载 jxbrowser,也可以在已经提取资源的 OSGi 环境中成功加载 jxbrowser。

有什么办法可以让jxbrowser成功的从jar中提取资源?

4

1 回答 1

0

看起来您没有适用于 JxBrowser 的正确 OSGI 包。据我所知,jxbrowser 支持 OSGI 捆绑分发,您可以简单地将其安装到您的 OSGI 容器中。

或者,您可以创建自己的捆绑包,仅导出 JxBrowser 公共 API,但包含您需要的 JxBrowser 库。您可以使用 Felix 捆绑插件自动化它,例如http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html

为了使这样的包工作,您需要在包激活器中初始化一个临时浏览器实例(只需创建一个浏览器组件)。这样当你的 OSGi 容器中安装 bundle 时,铬二进制文件就会被提取出来。

于 2016-03-29T11:33:15.253 回答