Category: General

New web license service and improvements for the on-premises server

Customers with floating licenses now have more flexibility: Starting with with the most recent releases of JProfiler and install4j, we now offer a web license service, so you do not have to install a license server yourself. If you choose that option, you will receive a license key that can be distributed to all developers and is entered just like a single license key. This option requires the ability to make an outgoing HTTP request to our license server.

Going forward, we will be offering both the web as well as the the on-premises solution. For the time being, the on-premises option remains the default and you can contact us if you would like to switch to the web option.

There is also good news for the on-premises license server with two great improvements that are available in the latest release:

Remote checkout

When you take your computer offsite where you don’t have access to the license server, you can check out a license for a number of days in the license dialog (Help->Enter License Key):

The maximum allowed number of days is configurable in the license server configuration and is set to 1 by default. If you return early, you can give the license back to the license server so it becomes available for other team members:

Encryption and Authentication

Previously, you could either choose an unencrypted direct connection suitable for local networks or an SSH connection suitable for use over the internet. However, the latter required SSH server access to the license server machine.

With the latest releases, you can enable encryption in the license server configuration and connect directly over the internet with mutual authentication and TLS encryption. The license server creates a file encryption/client.ks at startup (if it does not exist) that must be distributed to users and entered in the license dialog:

Without that file, no connection to the license server is possible. To reset the authentication, simply delete the “encryption” folder in the license server installation and restart the license server. A new authentication file will then be generated.

Support for macOS Apple Silicon

Please note: Several JDK providers now offer the macos-aarch64 architecture and there is no need anymore to create the bundle yourself, install4j can do this for you automatically.

(Edited on 2021-01-07 to include changes for install4j 8.0.10)

Apple machines with the new ARM architecture are now available. While you can run existing x64 binaries for on ARM machines through Rosetta, the performance may be impacted significantly. install4j 8.0.9 addresses this concern with support for native ARM binaries.

At the time of writing, the JRE port to macOS ARM has not landed in OpenJDK yet. Currently, only the JetBrains JDK provider includes a release with the macos-aarch64 architecture (

In addition, Azul provides distributions for macos ARM for several JDK versions. These JDKs can be processed with the “Project->Create a JRE bundle” command in the install4j IDE or the createbundle command line tool. This creates a “pre-created” JRE bundle that can be selected on the “Bundled JRE” step of the media wizard. An Azul JDK provider that would download these JDKs automatically and in a cross-platform way is planned for install4j 9.

After you have prepared a JRE bundle for macOS ARM, you can select the architecture in the macOS media wizard. You will still need an additional media file for Intel-based Macs, because ARM binaries do not run there.

Finally, select the pre-created bundle in the “Bundled JRE” step.

Introducing perfino

Today we’re releasing a major new product: perfino is a JVM monitoring tool for in-production use. Over the years, we have lost count of the number of times that our customers have asked us on how to best deploy JProfiler in production. While our standard response was to recommend a monitoring tool, our customers were not so easily dissuaded. They wanted the power of JProfiler to solve their particular problems.

Out of this dilemma, the idea for perfino was born. Would it be possible to develop a monitoring tool that could be used in production, yet provide a way to escalate from monitoring to profiling if necessary? We are firmly convinced that perfino succeeds with respect to this original goal and provides you with a layered defence in depth. When a problem becomes more difficult to solve with monitoring techniques, perfino offers low-risk, low-overhead native JVMTI sampling to get a picture of the entire JVM. If even that is not enough, perfino offers an easy way to attach JProfiler to a problematic JVM. At that point, you have the full arsenal of a Java profiler at your disposal.

However, the much larger part of perfino is not its emergency handling, but its monitoring capabilities. Here, we wanted to make a difference as well. perfino uses a Java agent with ultra-low overhead and measures what is called “business transactions” in the APM space. Business transactions capture important method calls with specially constructed names that help you to interpret what is going on in your application.

For business transactions, we brought in successful concepts from the profiling space and integrated them into perfino. For example, transactions are shown in a call tree and you can see hot spots of transactions. With perfino, it is possible to define many transactions that are nested. This gives you more informational depth and correspondingly more insight than just the list of top-level business transactions that is common for APM tools.

The amount of useful information in an APM tool is directly related to the amount and quality of the recorded business transactions. This is why we expended a lot of energy on the business transaction engine and the configuration of business transactions in the perfino UI. Also, we wanted to make it really easy to define business transactions directly in your code. The DevOps annotations offered by perfino are a great way to achieve this. Rather than thinking about monitoring as external to the application, you just annotate methods of interest.

The features mentioned above rotate around measuring method calls. Of course, a monitoring tool needs to do a lot more and we’ve strived to make perfino great in all these aspects: Telemetries, policies, triggers, alerts, end user experience monitoring and lots more. Take a look at the feature list or – even better – try it out in our live demo or on your own machines. Tell us what you think and what you would like to see in future versions.

perfino is a powerful APM solution today, but our vision for perfino is not done yet. There are many more things to come and we hope you’ll bear with us.

All screen casts now with HTML5 video

We’ve just converted all our screen casts to HTML with MP4 and WebM codecs so you can enjoy them on mobile and other Flash-less devices.

There still is a Flash fallback for ancient browsers that do not support the “video” tag. Some older browsers (such as Firefox 3) that support the video-tag but do not support either the MP4 or the WebM video codec may show an error. In that case, please go to our youtube channel to watch the screen casts.

— Update 2013-07-24

Since Firefox 21, MP4 is supported on Firefox if you’re on Windows 7 or higher. There may be problems with colors that are resolved if you go to about:config and set


In this blog we’ll show you tips and tricks around JProfiler and install4j. Comments and questions are always welcome. Enjoy!