Java - Tools




Velocity Template
Promock (see the JUnit page)
Sonar, Gerrit, PMD, FindBugs, Checkstyle, Emma, Cobertura, JIRA, etc
Finish the Java tutorial series
Jersey, Spring boot
EJB; Jersey; JAX-RS
AutoForm + SimpleSchema for Java
JMX: Java Management Extension. Application Monitoring
Java Servlet
JavaServer Faces
JavaServer Pages
Java Persistence API (JPA)
Java Transaction API
Java API for Resful Web Services
Managed Bean
JSR 299
JSR 330
Bean Validation
Java Message Service API
Java Authorization Contract for Container
Java Authentication Service Provider
Java Database Connectivity API
Java Naming and Directory Interface API
JavaBean Activation Framework
Java XML

  1. Maven
  3. CXF-JAXRS: a java api for creating restful services.
  4. Mybatis: a lightweight ORM java library for database interaction.
  5. Liquibase: Library for tracking, managing and applying database changes.
  6. SpringMVC:


Memory analysis tool:

Static code analysis tools

Application Container:

Code Coverage:
JRockit Mission Control (Console, Flight Recorder, Memory Leak Analyzer)
Open JDK: Verbose GC (so lightweight that it is recommended for production), Heap Dumps (HPROF Heap Profiler, HAT Heap Analysis Tool)

What is Java Mission Control?

Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collection framework built into the Oracle JDK. It allows Java administrators and developers to gather detailed low level information about how the Java Virtual Machine (JVM) and the Java application are behaving. Java Mission Control is an advanced set of tools that enables efficient and detailed analysis of the extensive of data collected by Java Flight Recorder. The tool chain enables developers and administrators to collect and analyze data from Java applications running locally or deployed in production environments.

Starting with the release of Oracle JDK 7 Update 40 (7u40), Java Mission Control is bundled with the HotSpot JVM.

How can we use Java Mission Control?

Need to read the above links and complete this question.

What is Java Console?

Java Console is a simple debugging aid that display any System.out and System.err. It is available for applets running with Java Plug-in and applications running with Java Web Start.

How can we enable Java Console for Microsoft VM?

  • In Microsoft Internet Explorer, from the Tools menu, choose Internet Options —> Advanced panel, Microsoft VM section —> select "Java console enabled" —> click OK.
  • Close Internet Explorer and restart it.

How can we view Java log (Microsoft VM):

Go to the View -> Java

Sometimes nothing displays on the Java console. You can work around this issue by sending the output that is saved to the directory, C:\WINNT\java\javalog.txt, and then viewing the Java log:

  1. Launch Internet Explorer and from the Tools menu, choose Internet Options —> Advanced panel —> Microsoft VM —> select "Java console enabled" and "Java logging enabled."
  2. Click Apply
  3. Close and relaunch the browser to enable these settings.
  4. Browse to the directory, C:\WINNT\java\javalog.txt, to see the results of the debug output.

If you have Sun JVM and Internet Explorer, what do you have to do?

First, verify that Sun JVM is properly enabled for Internet Explorer:

  1. From the Tools menu, choose Internet Options —> Advanced panel.
  2. Check the box under the Java (Sun) section for "Use Java 2 v1.4.x." (the version may vary).
  3. Make sure the boxes for Microsoft VM are unchecked
  4. Close the browser.

Next, verify that the Java console is enabled for Sun JVM and that it is configured for Internet Explorer:

  1. On the Windows TaskBar, choose Start —> Settings —> Control Panel —> Java Plugin
  2. On the Basic panel, make sure "Show console" is selected.
  3. On the Browser panel, make sure Microsoft Internet Explorer is selected.
  4. On the Version panel, make sure you have a supported version of Sun JVM. Consult the product documentation for the product you are using (Workplace, Sametime, QuickPlace, or Learning Management System; this may vary).

Close all IE sessions and start a new IE session.

In the new IE session, from the Tools menu, choose Sun Java console.

(Optional) Make the Sun Java console the active window. Press number 5 on your keyboard to trace level 5 logging. This level is often more useful than the default because it provides written descriptions of what is taking place, instead of numeric codes. Levels of logging can be changed in the Java console by typing a number from 0 - 5 (0 is none and 5 is the highest).

What is Java Control Panel?

Enables you to control various aspect of your Java environment.

What is jconsole?

jconsole is not to be confused with 'Java Console'. jconsole, part of Java 5 and Java 6, allows a user to monitor a java application's resource usage: memory, threads, classes, mbeans, vm info, etc. Just set the property "" on the java app you wish to monitor during startup. jconsole will then be able to monitor the new jvm. You can also ask the jvm to perform garbage collection on demand.

Is jconsole the same as Java Console?

No. jconsole is not to be confused with 'Java Console'.

What version of Java does jconsole come with?

jconsole is part of Java 5 and later.

What can you use jconsole for?

jconsole allows a user to monitor a java application's resource usage: memory, threads, classes, mbeans, vm info, etc.

What do you have to do on the server in order to use jconsole?

Just set the property "" on the java app you wish to monitor during startup.

How can we launch and use jconsole?

  1. On Windows, type jconsole into the Run box
  2. Select appropriate version of jconsole
  3. Select the "Remote" radio button
  4. Provide the remote server IP and port such as
  5. Provide the username and password if required
  6. Click the "Connect" button. If it gives us the option to connect insecurely, use that. We may have to check the personal firewall on our computer or any kind of firewall between our machine and the remote machine
  7. There are several tabs (Overview, Memory, Threads, Classes, VM Summary, MBeans).

On the MBean tab, on the left hand side pane, drill down on the MBean that you want. On the right pane, you can change values for the desired attributes

What are some profiler for Java?

  • JProbe
  • YourKit
  • JProfiler
  • Optimizeit

What is JProbe?

A Java profiler. See

What is YourKit?

A Java profiler.

What is JProfiler?

A Java profiler. See

What is Optimizeit?

A Java profiler. See:

What is CheckThread?

CheckThread is a static analysis tool to detect common developer errors that lead to concurrency problems. CheckThread has a plugin for Eclipse. CheckThread also have an Ant task so that we can integrate it as part of our build process. If we have multiple projects, CheckThread will only displays the errors in the Problems tab for the last project that it processed. If you see that CheckThread reports problems in the Console tab, but when you look at the Problems tab, and you do not see any problem, you need to close all the projects (leave just one project opened) and run CheckThread on each project one at a time. You must compile the projects before running CheckThread. As the name implies, this tool focus on detecting concurrency problems.

What is FindBugs?

FindBugs is another static analysis tool to detect common developer errors.

What is PMD?

PMD is another static analysis tool to detect common developer errors.

What is Valgrind?

What is Contemplate Threadsafe?

Contemplate Threadsafe is another static analysis tool to detect common developer errors. As the name implies, this tool focus on detecting concurrency problems.

What is Parallel?

How can we compare static analysis tools that detect concurrency problem?

What is Checkstyle?

Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License