Embed a Chromium-based Swing/JavaFX component into your Java application to display modern web pages built with HTML5, CSS3, JavaScript, Flash etc.

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.

371 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.
    • * TeamDev PROPRIETARY and CONFIDENTIAL.
    • * Use is subject to license 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.
    • * TeamDev PROPRIETARY and CONFIDENTIAL.
    • * Use is subject to license 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 that require web browser capabilities Google Maps in your Java Desktop Apps Automated Tests for web applications or services Taking Screenshots of web pages
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

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

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

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

Features


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 different web browser events such as Load (StartLoadingFrame , FinishLoadingFrame, FailLoadingFrame , DocumentLoadedInFrame and DocumentLoadedInMainFrame), Title and Zoom change events. 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.

Zooming

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.

Cookies

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.

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.

Saving a Web Page

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

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

Pop-ups

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.

User-agent

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.

Try the Demo

Run The Demo jxbrowserdemo.jnlp

Runs on Windows, Mac OS X & 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 Phone, chat and remote desktop
Product updates Product updates
Feature development
Priority issue resolution
Evaluate for Free Request Renewal Contact Us
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

Licence use is governed by the Product Licence Agreement.

Licensing policy has changed starting from JxBrowser 6.

  • Perpetual Licence Perpetual licence
  • 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
Contact Us

Company-wide $14,599

  • Developers Unlimited developers
  • Unlimited Projects Unlimited projects
  • Support 200 hours of support for 1 year
Contact Us

Source Code For 1 Developer

$11,499 1 Per Developer licence included
Developers Licence for more developers
is also available for purchase

Get Licences via Resellers

Become a Reseller

Frequently Asked Questions

Technical Questions

JxBrowser runs on Windows, Mac OS X, 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 51.0.2704.106 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 Knowledge Base.

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

Licensing Questions

First of all there are no more runtime files. You will only receive one licence 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 Licence 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 licence price.

You only need to purchase 2 licences. We licence 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 licence, which is cost-effective in case there are 3 and more developers on the team. The Project licence is bound to a single project you do, but it allows any number of developers in your company to work with our library.

Project Licence 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 licence is tied to one project only.

The best solution would be to purchase the Company–wide licence, which covers any number developers and projects in one company.

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

Yes, you can purchase JxBrowser Source Code Licence; 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 licence. Please submit a request via Open Source or Academic tab on the evaluation form.

Thank you!

Start your free trial in few simple steps

1
Email

Check Your Email

Links to download your evaluation licence 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.

2
Licence

Install the Licence

To start using JxBrowser

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

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

Examples

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

Evaluate

Commercial Open source Academic

With this licence you will be able to evaluate our product for 30 days.
The evaluation licence will not work after this time, so you will need to purchase the licence.

With this licence you will be able to evaluate our product for 30 days.
The evaluation licence 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 licence you will be able to evaluate our product for 30 days.
The evaluation licence will not work after this time. You can request a licence 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 licences only for projects distributed under non-viral licence (LGPL, Apache, etc.). Our library is proprietary and we will not be able to disclose its code.

Technologies

Please list other technologies, it may help in support.