Why JxBrowser

Clear API & Docs

Prompt Support

With a single-point support portal we are focused on your smooth experience with our library.

Developers’ Choice

Selected by 863 commercial and 33 open source projects worldwide since 2007.

Proven Expertise

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

559 companies worldwide build software using JxBrowser

Here are just a few to name:

Airbus S.A.S. Renault Group Caterpillar Inc Pfizer Inc Infosys Technologies Limited Sky Fujitsu Limited Wincor Nixdorf AG GE Healthcare Raytheon Company TRUSTe European Patent Office Deloitte Consulting Miele Immer Besser Sungard Data Systems Inc

Simple Integration

Java Swing App

  • /.../
    • /*
    • * Copyright (c) 2000- TeamDev Ltd. All rights reserved.
    • * Use is subject to licence terms.
    • */
  • import ...
    • import com.teamdev.jxbrowser.chromium.Browser;
    • import com.teamdev.jxbrowser.chromium.swing.BrowserView;
    • import javax.swing.*;
    • import java.awt.*;
  • /**...*/
    • /**
    • * This sample demonstrates how to create Browser instance,
    • * embed it into Swing container, display it in JFrame, and
    • * navigate to the "www.google.com" website.
    • */
  • public class JavaSwingSample {...
    • public static void main(String[] args) {...
      • Browser browser = new Browser();
      • BrowserView view = new BrowserView(browser);
      • JFrame frame = new JFrame();
      • frame.add(view, BorderLayout.CENTER);
      • frame.setSize(700, 500);
      • frame.setVisible(true);
      • browser.loadURL("http://www.google.com");

JavaFX App

  • /.../
    • /*
    • * Copyright (c) 2000- TeamDev Ltd. All rights reserved.
    • * Use is subject to licence terms.
    • */
  • import ...
    • import com.teamdev.jxbrowser.chromium.Browser;
    • import com.teamdev.jxbrowser.chromium.javafx.BrowserView;
    • import javafx.application.Application;
    • import javafx.scene.Scene;
    • import javafx.scene.layout.BorderPane;
    • import javafx.stage.Stage;
  • /**...*/
    • /**
    • * This sample demonstrates how to embed Browser instance
    • * into JavaFX control, display the control on scene, and
    • * navigate to the "www.google.com" website.
    • */
  • public class JavaFXSample extends Application {...
    • @Override
    • public void start(final Stage primaryStage) {...
      • Browser browser = new Browser();
      • BrowserView view = new BrowserView(browser);
      • Scene scene = new Scene(new BorderPane(view), 700, 500);
      • primaryStage.setScene(scene);
      • primaryStage.show();
      • browser.loadURL("http://www.google.com");
    • public static void main(String[] args) {...
      • launch(args);

How You Can Use JxBrowser

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
Taking Screenshots

You can take a screenshot of a web page including hidden scrollable area and save it as an image file. This functionality can be used in developing a web service that provides image of a web page by its URL or for automated tests when you need to compare screenshots of the same web page to find regression and changes.

Learn More


Lightweight and Heavyweight Component

JxBrowser supports two rendering modes: lightweight and heavyweight.
In lightweight (off-screen) rendering mode Chromium engine renders web page off-screen using CPU.
In heavyweight (GPU-accelerated) mode the engine renders content into a native window embedded into your Java application using GPU. Learn more.

Flash Support

JxBrowser allows displaying Adobe Flash content. You will need to have PPAPI Flash plugin installed.
Learn more.

Browser Events

You can listen to browser Title and Zoom changed events, and different Load events
DocumentLoadedInMainFrame Render process events such as RenderCreated and RenderGone are also available. See example.

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 example.

JavaScript Dialogs

JavaScript dialogs such as alert, confirmation, prompt, beforeunload, and file upload dialog can be handled using DialogHandler. You can choose whether a JavaScript dialog should be displayed or not and what the dialog should look like. See example.

Proxy, Basic, Digest, and NTLM authentication

With NetworkDelegate you can handle basic, digest, NTML, and Proxy authentications. Learn more.


You can zoom in, zoom out on a web page or set your own zoom level for the currently loaded web page. Zoom level is configured for each domain separately. To make sure that the zoom level for the web page is changed you can use ZoomListener. You can choose whether a JavaScript dialog should be displayed or not and what the dialog should look like. See example.

Accurate Web Display

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


Using the CookieStorage object you can receive all the cookies including secure and HTTP-only ones, delete all the cookies or a specific one, create and register new cookies. See example.

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.

Custom Context Menu

ContextMenuHandler allows you to handle the situation when context menu should be displayed. You can build your own Swing context menu, using different useful information from ContextMenuParams
such as context menu location, selected text, link URL, link text, HTML element media type etc. See example.

HTML to Image

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. 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.

Console Listener

Using ConsoleListener you can listen to console message events including JavaScript errors. See example.

Load Handler

The LoadHandler allows you to handle navigation to any URL address and cancel it when it's necessary. See example.

HTML5 Desktop Notifications

NotificationHandler allows you to tackle the situation when web page wants to display desktop notifications. You can build and display your own Swing/JavaFX notification when necessary. Or you can disable desktop notifications at all.

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.

Proxy Settings

You can configure each Browser 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 example.

Java Web Start and Java Applet

You can use JxBrowser library in Java applications that are deployed via Java Web Start or Java Applet. Read more in the Documentation.


All pop-up windows can be handled with PopupHandler. 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 examples.


With JxBrowser you can set your own user-agent for all Browser instances. See example.

File Download and Upload

DownloadHandler allows you to 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.

When a user clicks the file upload INPUT element on a web page, the DialogHandler.onFileChooser() method will be invoked. Using this method you can display your own file chooser dialog where a user can select a file to upload.

Keyboard and Mouse Events Filter

You can filter all keyboard and mouse events before they are passed to the Chromium engine. See example.

Saving a Web Page

Browser.saveWebPage() allows you to save the loaded web page as a set of files. See example.

Try the Demo

Run The Demo jxbrowserdemo.jnlp

Runs on Windows, macOS & Linux with:

You can find the same Demo application in the /demo directory of JxBrowser distribution package and run it locally. More Details

Getting Help

Contact Support

During your evaluation and an active support subscription you can submit requests related to your project on our support portal.

Ask a Question

We answer questions with #jxbrowser tag on Stack Overflow.

Evaluation SupportProvided for 30 days

Support Evaluation

Standard SupportProvided for one year with 25% discount for renewal

Support Standard

Premium SupportContract-based time and materials service

Support Premium
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 by email Provided by email
Product updates Product updates
Phone, chat and remote desktop
Feature development
Priority issue resolution
Evaluate for Free Request Renewal Request Premium
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

Product license agreement  ∙  LGPL compliance

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

  • Perpetual Licence Perpetual license
  • Free Distribution Free distribution within your application
  • Support Updates 1 year Support and updates
  • 25% Discount Support renewal with 25% discount
  • 15% Discount 15% discount on TeamDev products

Per Developer $1,799

  • Developer 1 developer
  • Unlimited Projects Unlimited projects
  • Support 55 hours of support for 1 year
Buy Now

Project $5,299

  • Developers Unlimited developers
  • Project 1 project
  • Support 75 hours of support for 1 year
Request License

Company-wide $14,599

  • Developers Unlimited developers
  • Unlimited Projects Unlimited projects
  • Support 500 hours of support for 1 year
Request License

Source Code For 1 Developer

Developers License for more developers
is also available for purchase

Frequently Asked Questions

Technical Questions

JxBrowser runs on Windows, macOS, and Linux. More information on supported platforms is available on the System Requirements page 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 69.0.3497.12 build.

Yes, you can use JxBrowser in Java Applet and JWS applications like a standard Java library. You can find more information about it in JxBrowser Documentation.

You can find a lot of examples in JxBrowser distribution package and online in our Documentation.

Licensing Questions

First of all there are no more runtime files. You will only receive one license file to use for development and distribution of your applicatons including our library. Also, you are now eligible for all updates, both major and minor, during your active Standard Support subscription period. Please take a look at the License Changes page devoted to the licensing changes for more detailed information.

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.

You only need to purchase 2 licenses. We license our library by the number of people who write code using our library.

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 your project via the fully-qualified class name. The fully-qualified class name for a class is the package name followed by the class name, separated by a period (.). For example: com.mycompany.myproduct.MyClass

This can be any class of your application. The only requirement is that it should be included into your Java application class path.

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.

Upon the license purchase you will receive a license archive. The archive will contain a licence.jar file. This license should be used in the development process and included in your application when distributing it to the end users. Inside the license.jar you can find the teamdev.licenses file that contains information about your license.

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.

If you are doing an open source or academic project, you can apply to get a free license. Please submit a request via Open Source or Academic tab on the evaluation form.

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


Check Your Email

Links to download your evaluation license and distribution archive 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.


Install the License

To start using JxBrowser

  • download your evaluation license,
  • download and extract the distribution archive,
  • include all the JAR files from the lib directory and evaluation license licence.jar in your application class path.

Get Started

Use these guides to get JxBrowser up and running in no time:

Quick Start Guide for Swing Developers

Quick Start Guide for JavaFX Developers


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


Commercial Open Source Academic

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.

With this license you will be able to evaluate our product for 30 days.
The evaluation license will not work after this time. If you are doing an open source project, you can request a permanent licence via the link provided in the email you will receive.

With this license you will be able to evaluate our product for 30 days.
The evaluation license will not work after this time. You can request a license for duration of your academic project via the link provided in the email you will receive.

You should have an existing open source project which has commits and some life period of the project.

We can provide licenses only for projects distributed under non-viral license (LGPL, Apache, etc.). Our library is proprietary and we will not be able to disclose its code.

Technologies and Platforms
Please list other technologies, it may help in support.
  • I have read and agree to the terms of the product license agreement
  • We collect your personal information to identify you as our customer and provide you with our products and services.
    Check out our privacy statement.

    I agree to processing of my personal information.
  • We would like to send you information on upgrades and offers whenever we feel the new version or product is useful for your development.
    You can unsubscribe from emailing at any time.

    I agree to receive suggestions for products upgrades and offers.