Why JxBrowser

Clear API & Docs

Prompt Support

We are always on to provide you help and library updates when needed.

Developers’ Choice

Selected by 1500+ commercial and 100+ open source projects worldwide since 2007.

Proven Expertise

Created by a team with years of hands-on experience of integrating Java code.

1453 companies worldwide build software using JxBrowser

Here are just a few to name:

Google LLC Mastercard Intel Corporation Airbus S.A.S. Pfizer Inc Infosys Technologies Limited Bosch BMW AG Sky GE Healthcare Raytheon Company European Patent Office Deloitte Consulting Miele Immer Besser

Simple Integration

  • /.../
    • /*
    • * Copyright (c) 2000- TeamDev Ltd. All rights reserved.
    • * TeamDev PROPRIETARY and CONFIDENTIAL.
    • * Use is subject to licence terms.
    • */
  • import ...
    • import static com.teamdev.jxbrowser.engine.RenderingMode.*;
    •  
    • import com.teamdev.jxbrowser.browser.Browser;
    • import com.teamdev.jxbrowser.engine.Engine;
    • import com.teamdev.jxbrowser.view.swing.BrowserView;
    •  
    • import java.awt.BorderLayout;
    • import javax.swing.JFrame;
    • import javax.swing.SwingUtilities;
  • /**...*/
    • /**
    • * This example demonstrates how to create and initialize the Engine,
    • * create the Browser, embed it into a Swing container, display it in
    • * JFrame, and load https://html5test.com
    • */
  • public final class HelloWorld {...
    • public static void main(String[] args) {...
      • Engine engine = Engine.newInstance(HARDWARE_ACCELERATED);
      • Browser browser = engine.newBrowser();
      •  
      • SwingUtilities.invokeLater(() -> {
        •   BrowserView view = BrowserView.newInstance(browser);
        •  
        •   JFrame frame = new JFrame("Swing BrowserView");
        •   frame.add(view, BorderLayout.CENTER);
        •   frame.setSize(700, 500);
        •   frame.setVisible(true);
        •  
        •   browser.navigation().loadUrl("https://html5test.com");
      • });
      }
    }
Your Java Swing Frame Frame
com.teamdev.jxbrowser.javafx.BrowserView

A Swing UI component that displays a web page loaded in the Browser instance associated with it.

Browser View
JxBrowser Integration Example for Java Swing JxBrowser Integration Example for Java Swing
 
 
  • /.../
    • /*
    • * Copyright (c) 2000- TeamDev Ltd. All rights reserved.
    • * TeamDev PROPRIETARY and CONFIDENTIAL.
    • * Use is subject to licence terms.
    • */
  • import ...
    • import static com.teamdev.jxbrowser.engine.RenderingMode.*;
    •  
    • import com.teamdev.jxbrowser.browser.Browser;
    • import com.teamdev.jxbrowser.engine.Engine;
    • import com.teamdev.jxbrowser.view.javafx.BrowserView;
    •  
    • import javafx.application.Application;
    • import javafx.scene.Scene;
    • import javafx.scene.layout.BorderPane;
    • import javafx.stage.Stage;
  • /**...*/
    • /**
    • * This example demonstrates how to create and initialize the Engine,
    • * create the Browser, embed it into a JavaFX scene, and display
    • * a modern web content such as YouTube video.
    • */
  • public final class HelloWorld extends Application {...
    • @Override
    • public void start(Stage primaryStage) {...
      • Engine engine = Engine.newInstance(HARDWARE_ACCELERATED);
      • Browser browser = engine.newBrowser();
      • BrowserView view = BrowserView.newInstance(browser);
      •  
      • Scene scene = new Scene(new BorderPane(view), 700, 500);
      • primaryStage.setTitle("JavaFX BrowserView");
      • primaryStage.setScene(scene);
      • primaryStage.show();
      •  
      • browser.navigation().loadUrl("https://youtu.be/BO8lX3hDU30");
      }
    }
Your JavaFX Scene Scene
com.teamdev.jxbrowser.javafx.BrowserView

A JavaFX UI component that displays a web page loaded in the Browser instance associated with it.

Browser View
JxBrowser Integration Example for JavaFX JxBrowser Integration Example for JavaFX
 
 
  • /.../
    • /*
    • * Copyright (c) 2000- TeamDev Ltd. All rights reserved.
    • * TeamDev PROPRIETARY and CONFIDENTIAL.
    • * Use is subject to licence terms.
    • */
  • import ...
    • import static com.teamdev.jxbrowser.engine.RenderingMode.*;
    •  
    • import com.teamdev.jxbrowser.browser.Browser;
    • import com.teamdev.jxbrowser.engine.Engine;
    • import com.teamdev.jxbrowser.view.swt.BrowserView;
    • import org.eclipse.swt.layout.FillLayout;
    • import org.eclipse.swt.widgets.Display;
    • import org.eclipse.swt.widgets.Shell;
  • /**...*/
    • /**
    • * This example demonstrates how to create and initialize
    • * the Engine, create the Browser, embed it into an SWT Shell,
    • * and load a web page that demonstrates WebGL 3D capabilities.
    • */
  • public final class HelloWorld {...
    • public static void main(String[] args) {...
      • Engine engine = Engine.newInstance(HARDWARE_ACCELERATED);
      • Browser browser = engine.newBrowser();
      •  
      • Display display = new Display();
      • Shell shell = new Shell(display);
      • shell.setText("SWT BrowserView");
      • shell.setLayout(new FillLayout());
      •  
      • BrowserView view = BrowserView.newInstance(shell, browser);
      • view.setSize(700, 500);
      •  
      • shell.pack();
      • shell.open();
      •  
      • browser.navigation().loadUrl(
      •     "https://webglsamples.org/dynamic-cubemap/dynamic-cubemap.html");
      •  
      • while (!shell.isDisposed()) {
        • if (!display.readAndDispatch()) {
          • display.sleep();
        • }
      • }
      • engine.close();
      • display.dispose();
      }
    }
Your SWT Shell Shell
com.teamdev.jxbrowser.view.swt.BrowserView

An SWT UI widget that displays a web page loaded in the Browser instance associated with it.

Browser View
JxBrowser Integration Example for SWT JxBrowser Integration Example for SWT
 
 

How You Can Use JxBrowser

Loading...
Cross Desktop Apps

JxBrowser can be used to display modern web pages and HTML+CSS+JavaScript content in your Java applications. It allows building GUI of your cross-desktop application using any popular HTML5 UI toolkit.

Learn More

Cross Desktop Apps
Using Google Maps API

Using JxBrowser you can embed Google Maps into your Java Desktop Apps and communicate with loaded map using JavaScript Google Maps API to zoom in/out, display a specified location, change map type, etc.

Learn More

Using Google Maps API
Automated Testing

With full access to loaded web page’s DOM and JavaScript you can find DOM elements, extract useful information from document content, fill and submit web forms, execute custom JavaScript code, etc.

Learn More

Automated Testing

Features


Hardware Accelerated and Off-Screen Rendering

Hardware Accelerated and Off-Screen Rendering

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.

Bidirectional JavaScript-Java Bridge

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.

Navigation Events

You can listen to different navigation events such as navigation started, finished, failed, redirected, frame load finished, etc. See guide.

DOM Access

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.

JavaScript Dialogs

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.

Saving a Web Page

The library allows you to save the loaded web page as a set of files. See example.

ARM Support

ARM Support

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.

Accurate Web Display

The component displays web pages using Chromium engine. Because of this web pages will look exactly as in Google Chrome.

HTML to Bitmap

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.

Cookies

You can access all the cookies including secure and HTTP-only ones, delete specific cookie or create a new one. See guide.

Keyboard & Mouse Events Filter

You can filter all keyboard and mouse events before they are passed to a web page. See example.

Custom Context Menu

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.

User-agent

With JxBrowser you can set your own user-agent for each Browser instance. See example.

Proxy, Basic, Digest, and NTLM authentication

The library allows handling basic, digest, NTML, and Proxy authentications as well as authentication through SuisseID and U2F devices. Learn more.

Displaying Netflix, Amazon Prime, Spotify, etc.

JxBrowser allows you to play video and audio content from the streaming web services that use DRM decryption. Read more.

Web Standards

JxBrowser supports all the modern web standards including HTML5, CSS3 and JavaScript. In general JxBrowser supports the same web standards as Google Chrome.

Printing

You can print the currently loaded web page or save it as PDF document via Print Preview dialog. Read more in the guide.

File Downloads

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.

Proxy Settings

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.

Pop-ups

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.

Filtering URLs

The library allows you to handle navigation requests and ignore them when it's necessary. See example.

Zooming

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.

Console Listener

You can listen to console message events including JavaScript errors. See example.

Getting Help

Contact Support

With a Standard Support subscription, you can address the technical questions about JxBrowser via your account at  JxBrowser Help Center.

Community

Standard SupportA 1-year subscription package

Support Standard

Premium ServicesIn addition to Standard Support
we can offer you

Support Premium
Product updates Custom builds
Help with the product use Priority feature development
Assistance in troubleshooting Video calls, remote sessions, and chats
Considering feature requests Consulting and expert advice
Early-Access Program On-site consulting
Official releases on demand
Additional coverage of specifics of your project or business
Contact Support Team Contact Sales
Awesome! It works great. Thanks so much for your excellent customer support. John Petersen, Sutro Software
Big thanks for your great support. I have spent these days with development within great JxBrowser library and I am quite impressed. Jan Pytel, Wincor Nixdorf International GmbH
I want to thank you for your immediate and continued assistance. The support we have received to date from TeamDev has been excellent. We look forward to continued interactions. Mike Riggs
Your support is phenomenal... Your responsiveness is really helpful... I continue to be impressed with you and your team. John Michelsen, iTKO, Inc.
I've just purchased the license. I would like to thank Vladimir for an excellent support in a responsive manner. This really helped us to close the deal quickly. Maty Siman, Checkmarx Ltd

Licensing and Pricing

LGPL compliance

JxBrowser is using Blink and FFmpeg components, supplied under LGPL.

Indie $1,799

  • Developer Issued to a person
  • Perpetual license
  • Free Distribution Free distributionwithin your application
  • Standard Support subscription
  • 1 year of product updates
  • 1 year of technical support
  • 1 account at JxBrowser Help Center
Request License Individual License Agreement

Project $7,299

  • Issued to a company
  • Perpetual license
  • Free Distribution Free distributionwithin your application
  • Project 1 project Bundled to a Java package of the project.
  • Standard Support subscription
  • 1 year of product updates
  • 1 year of technical support
  • 2 accounts at JxBrowser Help Center
Request License Project License Agreement

Enterprise from $26,599

  • Issued to a company
  • Perpetual license
  • Free Distribution Free distributionwithin your application
  • Unlimited Projects Unlimited projects
  • Standard Support subscription
  • 1 year of product updates
  • 1 year of technical support
  • 4 accounts at JxBrowser Help Center
Get in touch

Standard Support subscription renewal for 1 year

with 25%

discount

on the license price

with 25% discount on the license price

The prices on this page are exclusive of any taxes.

Frequently Asked Questions

Technical Questions

Do my users need to install Chrome?

No, all the required Chromium binaries are deployed with JxBrowser. You do not need to install Google Chrome to work with JxBrowser.

How often do you upgrade Chromium?

We follow Chromium schedule and start upgrading Chromium to the latest stable release as soon as it is available for download. Upgrading to a new Chromium version usually takes 3-4 weeks depending on the number of changes in the latest Chromium version.

Can you backport a fix from the latest version to the version I currently use?

No. All the fixes, improvements, new features, new Java and operating system versions, and Chromium upgrades are implemented on top of the latest (mainstream) version only. We do not apply or backport the fixes and features on top of the previous versions.

How many employees of my company can contact support?

  • If you have an Indie license we will create one account in JxBrowser Help Center for the license holder.
  • 2 accounts are created for the employees of the Project license holder.
  • Enterprise licensees can obtain up to 4 accounts for the company's employees.

Every person with an account in our system can contact the technical support.

Licensing Questions

What is the Standard Support subscription?

Together with a commercial license, TeamDev will provide you with a one year Standard Support subscription which includes product updates and technical support.

Will the product stop working after my subscription expiration?

The library will remain functional. However, you will not be able to use technical support and the new versions of the product released after the expiration date of your active subscription.

You can always prolong your subscription for another year at additional fee.

How many copies of my product can I distribute with JxBrowser included?

You can distribute an unlimited number of copies of your product with our library enclosed.

What is the definition of “project” in terms of the Project License?

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.

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.

Chromium is open source. Under which license is it provided?

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.

Thank you!

Start your free trial in few simple steps

1
Email

Check Your Email

An email with your evaluation license key will arrive at your inbox in a few minutes.

If the message gets lost in your mailbox, try searching for an email from JxBrowser Evaluation Support with “Your Free 30 Days Trial” subject.

2
Licence

Install the License

To start using JxBrowser:

  • download and extract the distribution archive,
  • include all the JAR files from the lib directory in your application class path,
  • configure JxBrowser with the license key.
3
Start

Get Started

Use the Quick Start Guides to get JxBrowser up and running in no time!

Examples

Check out the ready-made examples for instructions and ideas on what you can do with your newly gotten JxBrowser.

Evaluate

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.

  • I have read and agree to the terms of the individual license agreement.
  • I agree to processing of my personal information. We collect your personal information to identify you as our customer and provide you with our products and services. Check out our privacy statement.