Journey is a JCEF-powered cross-platform web browser created to address a need for an open-source JxBrowser alternative. No attempt has been made to go feature-to-feature with JxBrowser. Journey namely aims to provide the same level of cross-platform capability. This is accomplished by providing a reliable means of building and distributing the CEF native files with Travis-CI/AppVeyor, JitPack, and GitHub.
Issues/PRs are welcome for increasing the capability of Journey to be on par with that of JxBrowser.
- Linux (64bit) support
- macOS (64bit) support
- Windows (32bit/64bit) support
- Release distributions (CDN via GitHub)
- Online/offline CEF native file access
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
dependencies {
compile 'com.github.codebrig:journey:0.4.0-online'
//or use the offline version (includes native CEF files for all platforms; ~300MB)
//compile 'com.github.codebrig:journey:0.4.0-offline'
}
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.codebrig</groupId>
<artifactId>journey</artifactId>
<version>0.4.0-online</version>
<!-- or use the offline version (includes native CEF files for all platforms; ~300MB) -->
<!-- <version>0.4.0-offline</version> -->
</dependency>
import com.codebrig.journey.JourneyBrowserView;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class JourneyBrowser {
public static void main(String[] args) {
JourneyBrowserView browser = new JourneyBrowserView("https://google.com");
JFrame frame = new JFrame();
frame.getContentPane().add(browser, BorderLayout.CENTER);
frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
browser.getCefApp().dispose();
frame.dispose();
}
});
frame.setTitle("Journey");
frame.setSize(1000, 600);
frame.setVisible(true);
}
}
curl -L -O https://github.com/CodeBrig/Journey/releases/download/0.4.0-78-assets/jcef-distrib-linux64.zip
unzip jcef-distrib-linux64.zip
export LD_LIBRARY_PATH=/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64:$(pwd)/linux64/bin/lib/linux64
java -cp "linux64/bin/*" tests.detailed.MainFrame
curl -L -O https://github.com/CodeBrig/Journey/releases/download/0.4.0-69-assets/jcef-distrib-macintosh64.zip
unzip jcef-distrib-macintosh64.zip
mv ./macosx64/bin/jcef_app.app .
JAVA_PATH="./jcef_app.app/Contents/Java"
FRAMEWORKS_PATH="./jcef_app.app/Contents/Frameworks"
RESOURCES_DIR_PATH="$(pwd)/jcef_app.app/Contents/Frameworks/Chromium Embedded Framework.framework/Resources"
java -cp "$JAVA_PATH:$JAVA_PATH/*" -Djava.library.path=$JAVA_PATH tests.detailed.MainFrame --framework-dir-path=$FRAMEWORKS_PATH/Chromium\ Embedded\ Framework.framework --browser-subprocess-path=$FRAMEWORKS_PATH/jcef\ Helper.app/Contents/MacOS/jcef\ Helper --resources-dir-path="$RESOURCES_DIR_PATH" --disable-gpu
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
wget https://github.com/CodeBrig/Journey/releases/download/0.4.0-78-assets/jcef-distrib-windows64.zip -OutFile jcef-distrib-windows64.zip
Expand-Archive jcef-distrib-windows64.zip .
java -cp "./win64/bin;./win64/bin/*" "-Djava.library.path=./win64/bin/lib/win64" tests.detailed.MainFrame
Journey Version | JCEF Version (Linux) | JCEF Version (macOS) | JCEF Version (Windows) |
---|---|---|---|
0.4.0 (2019-11-30) | 78.2.7.237 (2019-11-14) | 69.0.3497.100 (2018-11-01) | 78.2.7.237 (2019-11-14) |
0.3.3 (2019-07-13) | 75.0.13.220 (2019-07-09) | 69.0.3497.100 (2018-11-01) | 75.0.13.220 (2019-07-09) |
0.2.18 (2019-06-30) 0.2.17 (2019-06-12) |
73.1.11.216 (2019-05-21) | 69.0.3497.100 (2018-11-01) | 73.1.11.216 (2019-05-21) |
0.2.16 (2019-06-10) | 73.1.11.215 (2019-05-10) | 69.0.3497.100 (2018-11-01) | 73.1.11.215 (2019-05-10) |
0.1.1 (2019-05-21) | 73.1.11.215 (2019-05-10) | n/a | 73.1.11.215 (2019-05-10) |