We are always on to provide you help and library updates when needed.
Selected by 1500+ commercial and 100+ open source projects worldwide since 2007.
Created by a team with years of hands-on experience of integrating Java code.
Here are just a few to name:
-
/.../
-
import ...
-
/**...*/
-
public final class HelloWorld {...
-
public static void main(String[] args) {...
- // Create and initialize the Engine
- EngineOptions options =
- EngineOptions.newBuilder(HARDWARE_ACCELERATED).build();
- Engine engine = Engine.newInstance(options);
-
- // Create the Browser
- Browser browser = engine.newBrowser();
-
- SwingUtilities.invokeLater(() -> {
-
- // Create the Swing BrowserView component
- BrowserView view = BrowserView.newInstance(browser);
-
- JFrame frame = new JFrame();
- frame.add(view, BorderLayout.CENTER);
- frame.setSize(700, 500);
- frame.setVisible(true);
-
- browser.navigation().loadUrl("https://www.google.com");
- });
}
}
-
/.../
-
import ...
-
/**...*/
-
public final class HelloWorld extends Application {...
- @Override
-
public void start(Stage primaryStage) {...
- // Create and initialize the Engine
- EngineOptions options =
- EngineOptions.newBuilder(HARDWARE_ACCELERATED).build();
- Engine engine = Engine.newInstance(options);
-
- // Create the Browser
- Browser browser = engine.newBrowser();
-
- // Create the JavaFX BrowserView component
- BrowserView view = BrowserView.newInstance(browser);
-
- Scene scene = new Scene(new BorderPane(view), 700, 500);
- primaryStage.setScene(scene);
- primaryStage.show();
-
- browser.navigation().loadUrl("https://www.google.com");
}
}
-
-
/.../
-
import ...
-
/**...*/
-
public final class HelloWorld {...
-
public static void main(String[] args) {...
- // Create and initialize the Engine
- Engine engine = Engine.newInstance(
- EngineOptions.newBuilder(HARDWARE_ACCELERATED).build());
-
- // Create the Browser
- Browser browser = engine.newBrowser();
-
- Display display = new Display();
- Shell shell = new Shell(display);
- shell.setLayout(new FillLayout());
-
- // Create the SWT BrowserView component
- BrowserView view = BrowserView.newInstance(shell, browser);
- view.setSize(700, 500);
-
- shell.pack();
- shell.open();
-
- browser.navigation().loadUrl("https://www.google.com");
-
- while (!shell.isDisposed()) {
-
- if (!display.readAndDispatch()) {
-
- display.sleep();
- }
- }
- engine.close();
- display.dispose();
}
}
JxBrowser supports two rendering modes: hardware accelerated and off-screen. In the off-screen rendering mode Chromium™ engine renders web page off-screen using CPU. In the hardware accelerated rendering mode the engine renders content into a native window embedded into your Java application using GPU. Learn more.
You can execute JavaScript code on the loaded web page and return the result of the execution to the Java side. You can work with JavaScript objects directly from Java. You can inject Java objects into JavaScript and work with Java objects from JavaScript. See example.
You can listen to different navigation events such as navigation started, finished, failed, redirected, frame load finished, etc. See guide.
You can find required HTML elements by tag name or ID, get/set HTML element attributes,
listen to different DOM events such as click
, mousedown
,
keydown
, keyup
, load
, unload
etc.
See guide.
You can handle JavaScript dialogs such as alert, confirmation, prompt, beforeunload, and file upload. You can choose whether a JavaScript dialog should be displayed or not and what the dialog should look like. Read more about dialogs.
The library allows you to save the loaded web page as a set of files. See example.
Due to the support of the ARM architecture on Linux 64-bit, JxBrowser can be used across wide variety of devices using this type of microchips. Read more.
The component displays web pages using Chromium engine. Because of this web pages will look exactly as in Google Chrome™.
JxBrowser allows getting image representation of the loaded web page including the hidden scrollable area. The image can be saved in PNG, JPEG and other graphic formats. See example.
You can access all the cookies including secure and HTTP-only ones, delete specific cookie or create a new one. See guide.
You can filter all keyboard and mouse events before they are passed to a web page. See example.
You can display your own Swing/JavaFX/SWT context menu, using different useful information obtained from the library such as context menu location, selected text, link URL, link text, HTML element media type etc. See example.
With JxBrowser you can set your own user-agent for each Browser
instance. See example.
The library allows handling basic, digest, NTML, and Proxy authentications as well as authentication through SuisseID and U2F devices. Learn more.
JxBrowser allows you to play video and audio content from the streaming web services that use DRM decryption. Read more.
JxBrowser supports all the modern web standards including HTML5, CSS3 and JavaScript. In general JxBrowser supports the same web standards as Google Chrome.
You can print the currently loaded web page or save it as PDF document via Print Preview dialog. Read more in the guide.
You can handle file downloads and control whether a file should be downloaded or not. You can also receive notifications about download progress, speed, completion percentage, received bytes etc. See example.
You can configure each Engine
instance to use its own proxy settings. Various
configurations are supported: auto detect proxy, manual proxy configuration for HTTP,
HTTPS, FTP, SOCKS protocols, direct proxy, proxy auto configuration files. See guide.
All pop-up windows can be handled. It is you who decides whether a pop-up window should be displayed or not and how exactly you want it to be displayed (e.g. in a separate window, in your application tab etc.). See guide.
The library allows you to handle navigation requests and ignore them when it's necessary. See example.
You can zoom in, zoom out a web page or set your own zoom level for the currently loaded web page. Zoom level is configured for each domain separately. See guide.
You can listen to console message events including JavaScript errors. See example.
During your active support subscription you can submit and track requests related to your project in JxBrowser Help Center.
Check the questions with #jxbrowser tag on Stack Overflow to see how other developers solved the tasks you are facing.
Follow @JxBrowserTeam on Twitter for the latest product news.
Evaluation SupportProvided for 30 days |
Standard SupportProvided for one year with 25% discount for renewal |
Premium SupportContract-based time and materials service |
---|---|---|
Help with the product use | Help with the product use | Help with the product use |
Response within one business day | Response within one business day | Response within one business day |
Provided by email | Provided via Help Center | Provided by email |
— | Product updates | Product updates |
— | — | Phone, chat and remote desktop |
— | — | Feature development |
— | — | Priority issue resolution |
Evaluate for Free | Request Renewal | Request Premium |
If you have questions, not covered by the documentation, please email us at sales@teamdev.com.
Product license agreement ∙ LGPL compliance
JxBrowser is using Blink and FFmpeg components, supplied under LGPL.
The prices on this page are exclusive of any taxes.
JxBrowser runs on Windows, macOS, and Linux. More information on supported platforms is available on the System Requirements page on the product support site.
No, all the required Chromium binaries are deployed with JxBrowser library. You even don’t need to install Google Chrome to work with JxBrowser.
Actual JxBrowser version is based on Chromium 84.0.4147.135 build.
Take a look at the license installation instruction.
You can find a lot of examples in our GitHub repository.
Major and minor version upgrades issued during your active Standard Support subscription period are free of charge. Upon expiration of the Standard Support subscription you can renew it with a 25% discount from the actual license price.
Please take a look at the Product License Agreement.
You only need to purchase 2 licenses. We license our library by the number of people who write code using our library.
This is possible with the Per Developer License.
You can distribute unlimited number of copies of your product with our library enclosed.
You may want to purchase a Project License, which is cost-effective in case there are 3 and more developers on the team. The Project License is bound to a single project you do, but it allows any number of developers in your company to work with our library.
Project License is bound to a package of your project. When you purchase a Project license we will ask you to provide the name of the package where you make calls to the library’s API. The package name is expected to be in the com.company.product.module
format.
When we say “project” we have in mind one product of your company including your future product versions or potential derivative works based on your product.
The Project License is tied to one project only.
The best solution would be to purchase the Company–wide License, which covers any number developers and projects in one company.
Yes, you can purchase JxBrowser Source Code License; it is provided on a per developer basis. Please contact our sales team if you are interested in this option.
Chromium code is mainly provided under a permissive BSD license, however, some components it includes are supplied under different licenses. We have reviewed the licenses for all components included in JxBrowser and referenced them here. There are no requirements to disclose your proprietary code.
With this license you will be able to evaluate our product
for 30 days.
The evaluation license will not work after this time, so you will need to purchase the license.