Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jcefmaven/jcefmaven
Maven artifacts for JCef
https://github.com/jcefmaven/jcefmaven
jcef jcef-maven
Last synced: 13 days ago
JSON representation
Maven artifacts for JCef
- Host: GitHub
- URL: https://github.com/jcefmaven/jcefmaven
- Owner: jcefmaven
- License: apache-2.0
- Created: 2020-11-17T16:40:41.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-21T08:48:08.000Z (24 days ago)
- Last Synced: 2024-10-21T12:14:27.446Z (24 days ago)
- Topics: jcef, jcef-maven
- Language: Java
- Homepage:
- Size: 814 KB
- Stars: 208
- Watchers: 15
- Forks: 38
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
JCEF MAVEN
Independent project to produce maven artifacts for the JCef project
Visit the JCEF repo at bitbucket or github
Embed a complete browser in your Java Apps - supports Java 8+
**Supports**
amd64, arm64, arm
amd64, arm64, i386
amd64, arm64
## Installation
**Use with Maven:**
```Maven POMme.friwi
jcefmaven
127.3.1```
**Use with Gradle:**
```Gradle
implementation 'me.friwi:jcefmaven:127.3.1'
```---
## How to use
You can find the most recent versions of the artifacts on the [releases](../../releases) page of this repository. Alongside each release is also a table with platforms that have been tested. If you have tested a platform and build combination that has not been tested before (using the [sample app](https://github.com/jcefmaven/jcefsampleapp)), make sure to open a [new issue](../../issues/new?assignees=&labels=test+report&template=report_artifact_working.md&title=%5BTR%5D+Test+report) to share your findings!Once you found a version you want to use, include it as a dependency into your project. An example include for Maven and Gradle can be seen above.
This will only include the base jcef library and jogl in your project. Natives will be downloaded and extracted on first run. If you want to skip downloading and instead bundle the natives, include the native artifacts in your project dependencies. You can see all of them [here](https://repo.maven.apache.org/maven2/me/friwi/). It is recommended to only include one bundle per build though, as each bundle is ~100MB. If you wish to include them, make sure you export one build per platform!Once you added your dependencies, you need to fire up jcefmaven in your code. No worries, it's not complicated!
```java
//Create a new CefAppBuilder instance
CefAppBuilder builder = new CefAppBuilder();//Configure the builder instance
builder.setInstallDir(new File("jcef-bundle")); //Default
builder.setProgressHandler(new ConsoleProgressHandler()); //Default
builder.addJcefArgs("--disable-gpu"); //Just an example
builder.getCefSettings().windowless_rendering_enabled = true; //Default - select OSR mode//Set an app handler. Do not use CefApp.addAppHandler(...), it will break your code on MacOSX!
builder.setAppHandler(new MavenCefAppHandlerAdapter(){...});//Build a CefApp instance using the configuration above
CefApp app = builder.build();
```
From there, continue to write your app using jcef as you are used to. You can call `builder.build()` as many times as you want. It is even thread-safe while initializing (will pause threads and return when initialization was completed).You can also set your custom download mirrors by using the `getMirrors()` and `setMirrors(Collection)` methods. This currently defaults to this repository on `github.com` and alternatively to the central maven repo on `repo.maven.apache.org`. Further information can be found in the javadoc.
If you need some code examples to create your first app, have a look at the [tests](jcefmaven/src/test) on this repository or at the [sample app](https://github.com/jcefmaven/jcefsampleapp).
#### Some additional useful code snippets
If you want to get the current platform as determined by jcefmaven (e.g. to disable osr on win-arm64), you can use:
```java
EnumPlatform platform = EnumPlatform.getCurrentPlatform();
EnumOS os = platform.getOs();
```If you want to obtain version information, you can use:
```java
//Provides build version data. Requires build_meta.json to be on classpath.
CefBuildInfo buildInfo = CefBuildInfo.fromClasspath();//Provides JCEF version data. You can call this after initialization.
CefVersion cefVersion = cefApp.getVersion();
```## Requirements
- Java 8 or later## Limitations
- No OSR mode supported on win-arm64 (no jogamp)
- `CefApp.addAppHandler(...)` should not be used. Use `builder.setAppHandler(...)` instead (requires a `CefMavenAppHandlerAdapter`)
- To run on JDK 16 or later:To use on MacOSX, add the following JVM flags:
```
--add-opens java.desktop/sun.awt=ALL-UNNAMED
--add-opens java.desktop/sun.lwawt=ALL-UNNAMED
--add-opens java.desktop/sun.lwawt.macosx=ALL-UNNAMED
```To use OSR (off-screen render) mode, add these flags for JOGL:
```
--add-exports java.base/java.lang=ALL-UNNAMED
--add-exports java.desktop/sun.awt=ALL-UNNAMED
--add-exports java.desktop/sun.java2d=ALL-UNNAMED
```## Reporting bugs
Please only report bugs here that are related to the maven artifacts.
Please report bugs in JCEF/CEF to the [corresponding repository on Bitbucket](https://bitbucket.org/chromiumembedded/).