Как интегрировать Chromium Embedded Framework (CEF) с java

Я хотел бы создать настольное приложение для просмотра веб-сайта, я не хочу создавать браузер, а приложение, встроенное в браузер. Я пробовал с JavaFx, но обнаружил некоторые проблемы, такие как отсутствие поддержки плагинов (например: flash, просмотрщик PDF и т. д.).

После долгих поисков я нашел Chromium Embedded Framework (CEF) или JCEF Java-оболочку для CEF, но я не знаю не знаю, как использовать его в Java для начала. Каковы зависимости? Как я могу начать разработку (POC), используя netbeans?

Можно ли встроить CEF/JCEF в java-приложение?


person Amogh    schedule 17.01.2014    source источник
comment
Лучше всего получить ответ на форуме поддержки CEF. Недавно Маршалл, основатель CEF, возглавил проект JCEF. Поэтому не стесняйтесь задавать вопросы на форуме CEF. Киньте ссылку на тему после того, как спросите там.   -  person Czarek Tomczak    schedule 18.01.2014
comment
@CzarekTomczak этот форум ужасен. Почему нет быстрого старта для этого? Он просто дает вам страницу загрузки и ничего не говорит вам о том, как заставить работать двоичные файлы.   -  person thouliha    schedule 11.06.2015
comment
@thouliha См. раздел «Быстрые ссылки» и вики-страницу учебника здесь: bitbucket.org/chromiumembedded/cef . См. также другие вики-страницы: bitbucket.org/chromiumembedded/cef/wiki/browse   -  person Czarek Tomczak    schedule 11.06.2015
comment
у него все еще много ошибок? Я видел там комментарии bitbucket.org....   -  person gumuruh    schedule 26.01.2017


Ответы (3)


Можно ли встроить CEF/JCEF в java-приложение?

Да, вы можете сделать это! Шаги:

  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 Project и JVM 64bit.

person Tho    schedule 25.07.2014
comment
Я также работаю над тем же JCEF, что и в ответе. Я удивлюсь, если есть 32-битная версия. - person Amogh; 26.07.2014
comment
Нет, JCEF также поддерживает 32-разрядную версию JVM, но ее нельзя тщательно протестировать code.google.com /p/javachromiumembedded/wiki/BranchesAndBuilding - person Tho; 26.07.2014
comment
Привет, я пытаюсь настроить/собрать JCEF в eclipse. Пожалуйста, поделитесь шагами, чтобы сделать это? Вы можете опубликовать ответ здесь stackoverflow.com/questions/25761607/ - person ; 10.09.2014
comment
Я пытаюсь заставить его работать на Linux, какие файлы мне использовать? - person thouliha; 11.06.2015
comment
На шаге 2, Объявление переменной среды, можете ли вы объяснить более подробно? Какую переменную среды мы объявляем? - person Vigs; 20.12.2015
comment
Пожалуйста, проверьте эту ссылку en.m.wikipedia.org/wiki/Environment_variable . Вы можете просто добавить путь к переменной PATH - person Tho; 20.12.2015
comment
Спасибо. Извините, я должен был быть более конкретным. Я понимаю, что делает переменная среды и как их использовать. Но в данном конкретном случае я не понимаю, почему мы добавляем ${extract_dir} в наш путь? Кроме того, ваши инструкции кажутся неясными, поскольку загрузка по предоставленной вами ссылке, похоже, не включает JCEF. Мне пришлось следовать инструкциям здесь для сборки JCEF. - person Vigs; 20.12.2015
comment
Я понимаю, почему нам нужно добавить нативный код в путь сейчас. Для тех, кто наткнулся на это: в CefApp.java jcef пытается загрузить библиотеки libcef и jamt, которые существуют в выходном каталоге собственной сборки cef. Мы должны сделать эти библиотеки доступными для обнаружения, добавив этот каталог в системный путь. - person Vigs; 20.12.2015

У меня есть репозиторий, который поддерживает выпуски для каждой версии JCEF. Сборки выполняются для разных архитектур и ОС (mac, linux и windows).

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

В зависимости от вашей целевой ОС и архитектуры каждый zip-архив содержит jar-файлы, которые необходимо поместить в путь к классам вашего Java-приложения. Они также содержат собственные библиотеки, которые должны быть загружены вашим приложением, установив java.library.path для указания на папку, содержащую двоичные файлы.

ZIP-файлы также содержат тестовое приложение, которое можно запустить, запустив скрипт, также находящийся в папке.

person smac89    schedule 05.09.2019
comment
@toolforger, почему ты так говоришь? - person smac89; 11.06.2020
comment
Ах... подождите... Я перепутал это с доступностью Maven Central. Прости. - person toolforger; 11.06.2020
comment
Я написал очень краткую статью о том, как начать работу с упомянутыми выше выпусками whereisdarran.com/2020/12/ - person dazza5000; 06.12.2020
comment
@ dazza5000 это здорово. Коротко и мило. У меня не было времени создавать maven jar для полной разработки Java, но я обязательно пропингую ваш комментарий, когда он будет готов. - person smac89; 06.12.2020

Вы можете встроить CEF в приложения Java, используя проект с открытым исходным кодом Chromium SWT:

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

Он работает с приложениями SWT. Вы можете использовать его, добавив предложение импорта в свое приложение и создав экземпляр виджета Chromium.

Поскольку вы хотите создать настольное приложение с использованием Java, я также рекомендую взглянуть на Equo Framework, который позволяет создавать настольные приложения с нуля, используя технологии java и HTML5 для внешнего интерфейса. Пожалуйста, найдите ссылку ниже:

https://github.com/equoplatform/framework

person Juan    schedule 28.06.2021