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

Why JxBrowser

  • Rich and easy-to-use API.
  • Great documentation with many examples.
  • You’re in control of your app. Compared to other similar products, JxBrowser does not execute native code in your Java application process. Forget about memory usage issues caused by native web browser engine that allocates too much memory of your Java process. All the native code runs in separate native processes. In the unlikely event of a browser crash (e.g. because of a plugin problem), your app will continue working and you can restore the browser back.
  • Great support. Responsive support team will answer your request within 24 hours. To get help you can choose different support channels: email, support site and forum or premium support service. You are welcome to contact us with initial questions at evaluation support address. Learn more.

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 Component

Starting from version 4.0, JxBrowser provides a totally lightweight Swing/JavaFX component for displaying web pages. All web page rendering happens in separate native Chromium processes.

Flash and Silverlight

JxBrowser allows displaying Adobe Flash and Microsoft Silverlight contents. You will need to have Flash plugin and Silverlight 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 DialogHandler you can also handle basic, digest, NTML and Proxy authentications.

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 lightweight 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 register new JavaScript functions and associate them with Java methods. Every time JavaScript invokes this function an appropriate Java method will be applied. 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

Using the BrowserView.getImage() method you can get an 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 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 JxBrowser Programmer’s Guide.

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

User-agent

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

File Download & 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.

Key Filter

Using KeyFilter you can filter all keyboard 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.

Licensing and Pricing*

By using our products or any related documentation, you accept the Terms and Conditions of the Product Licence Agreement.

What You Get

  • Perpetual Development Licence
  • Free runtime distribution
  • Free minor version product updates
  • Free major version upgrade within 60 days of purchase date
  • Free Standard Support pack
  • No obligatory renewal fee
  • 15% discount on other TeamDev products

Per Developer

$1,799

Per Project

$5,299

Unlimited

$14,599

Source Code

$11,499

Personal

$499

Support Renewal

 

Premium Support

* Your country's tax fees may apply to licence purchases. They will be charged in addition to the prices specified.
* Prices are subject to change without prior notice from TeamDev. Request an official quote for the purpose of purchase processing.

Technical FAQ

For the list of supported platforms please check the System Requirements page on the JxBrowser 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.

Please check out the Chromium Version page for the information on the used Chromium build.

Yes, you can use JxBrowser in Java Applet and JWS applications like standard Java library. You can find more information about it in JxBrowser Programmer’s Guide .

You can find a lot of examples in JxBrowser distribution package and online at JxBrowser Samples web page.

A: The fully-qualified name for a class is the package name followed by the class name, separated by a period (.). For example: com.mycompany.myproduct.MyClass

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

Licensing FAQ

A: Our licensing is based on versions of JxBrowser. Having purchased the licence for our product you get the right to use the current major version of the product.

A: All minor version updates are free of charge. For example, if you have a licence to library version 4.x, you can receive all updates until the version 5.x is released. You can check the version of your licence in the teamdev.licenses file.

A: Upon purchase of licence you will receive a licence archive. The archive will contain two JARs: development.jar and runtime.jar. Development.jar is the licence that should be used in development process. Runtime.jar should be used to distribute your application to end users. Inside the development.jar you can find the teamdev.licenses file that contains information about your licence.

A: Major version upgrades should be purchased. You can upgrade your licence to a major version with a 25% upgrade discount. The licence upgrade includes renewal of the Standard Support pack.

A: You can distribute unlimited number of copies of your product with our library enclosed. Please use Runtime Licence for distribution of your product.

Runtime Licence is provided free of charge.

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

A: The Per Developer licence is intended for companies. This licence can be passed from developer to developer under the condition that the number of licences in your team corresponds to the number of developers writing code using JxBrowser. The Personal licence is tied to just one person. It cannot be transferred, granted or assigned.

A: You may want to purchase a Project licence, which is cost-effective in case there are 3 and more developers on the team.

A: Per 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.

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

A: The best solution would be to purchase the Unlimited licence, which covers any number developers and projects in one company.

A: The Project licence is tied to one project only.

Free Licenсes Programs

Free Licences for Academic Purposes

We provide licences for institutions, educators, students and researchers for the duration of the project or a study.

Apply You will need to submit a reference letter from your supervisor (for students) or proof of participation in research project.
Open Source™

Free Licences for Open-source Projects

We will provide you with a free licence that will be tied to a class name in your project.

Apply

Getting Help

Product Forums

You will need a Google ID to be able to post on forums, and you can do that

Note that your message will be automatically posted on the web.

Evaluation Support

Standard Support

Premium Support

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

Evaluate

We will use this name when writing to you.
We will send you the link. We will not give your email to anybody else.
Tell us about your project so that we can give you hints on using our product in your app.