【问题标题】:How to integrate Chromium Embedded Framework (CEF) with java如何将 Chromium Embedded Framework (CEF) 与 java 集成
【发布时间】:2023-08-26 20:08:01
【问题描述】:

我想做一个桌面应用程序来浏览网站,我不想做一个浏览器,而是一个浏览器嵌入的应用程序。我试过JavaFx,但我发现了一些问题,比如缺少对插件的支持(例如:flash、pdf 查看器等)。

经过大量搜索后,我找到了 Chromium Embedded Framework (CEF) 或 JCEF CEF 的 Java 包装器,但我不知道如何在 java 中使用它。依赖项是什么?我如何开始开发( POC) 使用netbeans?

是否可以在 java 应用程序中嵌入 CEF/JCEF?

【问题讨论】:

  • 您获得答案的最佳机会是CEF Support Forum。近日,CEF创始人Marshall接手了JCEF项目。因此,请随时在 CEF 论坛上提问。在您询问后发布该主题的链接。
  • @CzarekTomczak 那个论坛太可怕了。为什么没有快速入门?它只是给你一个下载页面,并没有告诉你如何让二进制文件工作。
  • @thouliha 请参阅此处的快速链接部分和教程 wiki 页面:bitbucket.org/chromiumembedded/cef。另请参阅其他 wiki 页面:bitbucket.org/chromiumembedded/cef/wiki/browse
  • 它还有很多错误吗?我在那边看到了 bitbucket.org cmets....

标签: java chromium chromium-embedded


【解决方案1】:

是否可以在 java 应用程序中嵌入 CEF/JCEF?

是的,你可以做到!步骤是:

  1. 下载JCEF并解压JCEF

  2. 声明环境变量指向${EXTRACT_DIR}/bin/lib/win64

  3. 在本地存储库中安装以下文件: ${EXTRACT_DIR}/bin/{gluegen-rt.jar, gluegen-rt-natives-windows-amd64.jar, jogl-all.jar, jogl-all-natives-windows-amd64.jar, jcef.jar}.

例如:mvn install:install-file -Dfile=gluegen-rt.jar -DgroupId=org.jcef -DartifactId=gluegen -Dversion=1.0 -Dpackaging=jar

  1. 创建一个 maven 项目并在 pom.xml 中声明已安装的工件

  2. 将示例:${EXTRACT_DIR}/bin/tests/simple/MainFrame.java 复制到您的项目并尝试一下

请注意,这些步骤适用于 Maven 项目JVM 64bit

【讨论】:

  • 我也在研究我在回答中发布的同一个 JCEF。如果有任何 32 位版本,我会感到惊讶。
  • 不,JCEF 也支持 JVM 32 位但可能没有仔细测试code.google.com/p/javachromiumembedded/wiki/BranchesAndBuilding
  • 嗨,我正在尝试在 Eclipse 中设置/构建 JCEF。请分享这样做的步骤?您可以在此处发布答案*.com/questions/25761607/…
  • 我正在尝试让它适用于 linux,我使用哪些文件?
  • 我明白为什么我们现在需要将本机代码添加到路径中。对于其他偶然发现此问题的人:在CefApp.java 中,jcef 尝试加载 libcef 和jawt 库,它们存在于本机 cef 构建的输出目录中。我们必须通过将该目录添加到系统路径来使这些库可被发现。
【解决方案2】:

我有一个存储库,用于维护每个 JCEF 版本的发布。构建针对不同的架构和操作系统(mac、linux 和 windows)完成。

https://github.com/jcefbuild/jcefbuild/releases

根据您的目标操作系统和架构,每个 zip 都包含需要放在 java 应用程序的类路径中的 jar。它们还包含需要由您的应用程序加载的本机库,方法是将 java.library.path 设置为指向包含二进制文件的文件夹。

压缩包还包含一个测试应用程序,可以通过运行文件夹中的脚本来执行该应用程序。

【讨论】:

  • @toolforger 你为什么这么说?
  • 啊...等等...我把这与 Maven Central 的可用性混淆了。对不起。
  • 我写了一篇非常简短的文章,介绍如何开始使用上面提到的版本whereisdarran.com/2020/12/…
  • @dazza5000 太好了。短而甜。我还没有时间为完整的 Java 开发创建 maven jar,但我会确保在准备好后回复您的评论
  • @RenéPöpperl 我必须承认,我已经很久没有接触那个项目了,一直忙于其他事情。你看到的所有版本都是由 travis ci 和 appveyor 完成的(都是自动的)。我不能保证,但我会看看你提到的问题是否有一个简单的解决方案,然后我会在本周末更新 repo。
【解决方案3】:

您可以使用开源项目 Chromium SWT 将 CEF 嵌入到 Java 应用程序中:

https://github.com/equoplatform/chromium-swt

它适用于 SWT 应用程序。您可以通过向应用添加导入语句并创建Chromium 小部件的实例来使用它。

由于您想使用 Java 创建桌面应用程序,我还建议您查看 Equo 框架,它允许从头开始创建桌面应用程序,前端使用 java 和 HTML5 技术。请找到以下链接:

https://github.com/equoplatform/framework

【讨论】: