'Journey browser Java Chromium Embedded framework throwing error?

I am trying to use a library called Journey browser which uses the Java Chromium Embedded Framework. I first created a Java Maven Project with Netbeans and I edited the pom.xml to match the values on the library's guide, which is here: https://github.com/CodeBrig/Journey, to add the maven dependencies. (No errors detected by Netbeans) I then built the project to download the maven dependency and put their default code (modified slightly) in the main class. Netbeans found no errors in the code. However, when I run the project I get a "no chrome_elf in java.library.path". I think this has something to do with embedding JCEF, but I am not sure how to add this to the "java.library.path" in Netbeans.

How do I fix this "chrome_elf" problem? Also, if I am able to fix this will it be an error for production if someone doesn't have "chrome_elf" installed?



Solution 1:[1]

For Windows

This happens because the chrome_elf.dll (on Windows) file cannot be found.

Java is looking for this file on java.library.path - which (on my machine, anyway) refers to all the locations referenced by the Windows %path% environment variable.

One way to fix this is to download one of the pre-built distributions from that GitHub page (for example the Windows one, referred to here):

https://github.com/CodeBrig/Journey/releases/download/0.4.0-78-assets/jcef-distrib-windows64.zip

Then unzip the resulting jcef-distrib-windows64.zip. In the win64\bin\lib\win64 directory under that main directory you will find the chrome_elf.dll you need - and other binaries which are also needed.

Add this directory to your path - either by adding it to the Windows environment variable or via java -Djava.library.path=....

For example, the path may be similar to this:

C:\your\path\to\jcef-distrib-windows64\win64\bin\lib\win64

This should allow you to run the demo code provided in the JourneyBrowser class. A browser window should open as a result.

Here is the browser:

enter image description here

The above steps worked for me - and the only files I needed to keep from the (large) distribution download were those in the jcef-distrib-windows64\win64\bin\lib\win64 directory. It's possible that I already have some other dependencies which may be needed - so I cannot guarantee this process will also work for you.

For Linux (and MacOS)

I have not tried this on a Linux machine. But in that case, I believe you will need to download and unzip the jcef-distrib-linux64 release - and then point to the jcef-distrib-linux64\linux64\bin\lib\linux64 directory, containing libcef.so and other libraries.

Similarly for MacOS, there is a distribution which can be downloaded and unzipped.

Alternative

An alternative is to simply use the pre-built distributions provided on GitHub, using the commands provided. Obviously, in this case, you will not be creating your own customized implementation (so, no JourneyBrowser class).

Solution 2:[2]

copy scr/native/Release to jcef_build/native/Release from the default output directory of VS.check whether the Release exists in java.lib.path

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 andrewJames
Solution 2 vkdooe tonny