Skip to main content

JAVA TOOLS


Basic Tools

These tools are the foundation of the JDK. They are the tools you use to create and build applications.

Tool Name

Brief Description

Links to Reference Pages

appletviewer

Run and debug applets without a web browser.

[Solaris and Linux] [Windows]

apt

Annotation processing tool.
See Annotation Processing Tool for program annotation processing.

[Solaris, Linux, and Windows]

extcheck

Utility to detect Jar conflicts.

[Solaris and Linux] [Windows]

jar

Create and manage Java Archive (JAR) files.
See Java Archive Files page for the JAR specification.

[Solaris and Linux] [Windows]

java

The launcher for Java applications. In this release, a single launcher is used both for development and deployment.
The old deployment launcher, jre, is no longer provided.

[Solaris and Linux] [Windows]

javac

The compiler for the Java programming language.

[Solaris and Linux] [Windows]

javadoc

API documentation generator.
See Javadoc Tool page for doclet and taglet APIs.

[Solaris and Linux] [Windows]

javah

C header and stub generator. Used to write native methods.

[Solaris and Linux] [Windows]

javap

Class file disassembler

[Solaris and Linux] [Windows]

jdb

The Java Debugger.
See JPDA for the debugger architecture specifications.

[Solaris and Linux] [Windows]


Security Tools

These security tools help you set security policies on your system and create apps that can work within the scope of security policies set at remote sites.

Tool Name

Brief Description

Links to Reference Pages

keytool

Manage keystores and certificates.

[Solaris and Linux] [Windows]

jarsigner

Generate and verify JAR signatures.

[Solaris and Linux] [Windows]

policytool

GUI tool for managing policy files.

[Solaris and Linux] [Windows]

These security tools help you obtain, list, and manage Kerberos tickets.

Tool Name

Brief Description

Links to Reference Pages

kinit

Tool for obtaining Kerberos v5 tickets. Equivalent functionality is available on the Solaris operating system via the kinit tool. For example, for Solaris 11, see thekinit reference page.

[Windows]

klist

Command-line tool to list entries in credential cache and key tab. Equivalent functionality is available on the Solaris operating system via the klist tool. For example, for Solaris 11, see the klist reference page.

[Windows]

ktab

Command-line tool to help the user manage entires in the key table. Equivalent functionality is available on the Solaris operating system via the kadmin tool. For example, for Solaris 11, see the kadmin reference page.

[Windows]


Internationalization Tools

This tool helps to create localizable apps.

Tool Name

Brief Description

Links to Reference Pages

native2ascii

Convert text to Unicode Latin-1.

[Solaris and Linux] [Windows]


Remote Method Invocation (RMI) Tools

These tools help to create apps that interact over the Web or other network.

Tool Name

Brief Description

Links to Reference Pages

rmic

Generate stubs and skeletons for remote objects.

[Solaris and Linux] [Windows]

rmiregistry

Remote object registry service.

[Solaris and Linux] [Windows]

rmid

RMI activation system daemon.

[Solaris and Linux] [Windows]

serialver

Return class serialVersionUID.

[Solaris and Linux] [Windows]


Java IDL and RMI-IIOP Tools

These tools are used when creating applications that use OMG-standard IDL and CORBA/IIOP.

Tool Name

Brief Description

tnameserv

Provides access to the naming service.

idlj

Generates .java files that map an OMG IDL interface and enable an application written in the Java programming language to use CORBA functionality.

orbd

Provides support for clients to transparently locate and invoke persistent objects on servers in the CORBA environment. ORBD is used instead of the Transient Naming Service, tnameserv. ORBD includes both a Transient Naming Service and a Persistent Naming Service. The orbd tool incorporates the functionality of a Server Manager, an Interoperable Naming Service, and a Bootstrap Name Server. When used in conjunction with the servertool, the Server Manager locates, registers, and activates a server when a client wants to access the server.

servertool

Provides ease-of-use interface for the application programmers to register, unregister, startup, and shutdown a server.


Java Deployment Tools

Utilities for use in conjunction with deployment of java applications and applets on the web.

Tool Name

Brief Description

pack200

Transforms a JAR file into a compressed pack200 file using the Java gzip compressor. The compressed packed files are highly compressed JARs, which can be directly deployed, saving bandwidth and reducing download time.

unpack200

Transforms a packed file produced by pack200 into a JAR file.


Java Web Start Tools

Utilities for use in conjunction with Java Web Start.

Tool Name

Brief Description

javaws

Command line tool for launching Java Web Start and setting various options.
See Java Web Start Guide for more information.


Java Troublshooting, Profiling, Monitoring and Management Tools

Tool Name

Brief Description

jconsole

A JMX-compliant graphical tool for monitoring a Java virtual machine. It can monitor both local and remote JVMs. It can also monitor and manage an application.
See Monitoring and Management for the Java Platform for more information.


Java Web Services Tools

Tool Name

Brief Description

schemagen

Schema generator for Java Architecture for XML Binding.

wsgen

Tool to generate JAX-WS portable artifacts.

wsimport

Tool to generate JAX-WS portable artifacts.

xjc

Binding compiler for Java Ardchitecture for XML Binding.


Monitoring Tools

You can use the following tools to monitor JVM performance statistics. The tools described in this section are unsupported and experimental, and should be used with that in mind. They may not be available in future JDK versions.

These tools are supported on all platforms except Windows 98 and Windows ME.

Tool Name

Brief Description

jps

Experimental: JVM Process Status Tool - Lists instrumented HotSpot Java virtual machines on a target system.

jstat

Experimental: JVM Statistics Monitoring Tool - Attaches to an instrumented HotSpot Java virtual machine and collects and logs performance statistics as specified by the command line options.

jstatd

Experimental: JVM jstat Daemon - Launches an RMI server application that monitors for the creation and termination of instrumented HotSpot Java virtual machines and provides a interface to allow remote monitoring tools to attach to Java virtual machines running on the local system.


Troubleshooting Tools

The following tools can be used for specific troubleshooting tasks. The tools described in this section are unsupported and experimental in nature and should be used with that in mind. They may not be available in future JDK versions.

Some of these tools are not currently available on Windows platforms.

Tool Name

Brief Description

jinfo

Experimental - Configuration Info for Java - Prints configuration information for a given process or core file or a remote debug server.

jhat

Experimental - Heap Dump Browser - Starts a web server on a heap dump file (eg, produced by jmap -dump), allowing the heap to be browsed.

jmap

Experimental - Memory Map for Java - Prints shared object memory maps or heap memory details of a given process or core file or a remote debug server.

jsadebugd

Experimental - Serviceability Agent Debug Daemon for Java - Attaches to a process or core file and acts as a debug server.

jstack

Experimental - Stack Trace for Java - Prints a stack trace of threads for a given process or core file or remote debug server.

Refer to the Java™ SE Troubleshooting web site for descriptions of tools, options, and other information to use in analyzing problems. The documents at this site contain suggestions about what to try before submitting a bug report and what data to collect for a report.


Scripting Tools

The following tool can be used to run scripts that interact with the Java platfrom. This tool is unsupported and experimental in nature and should be used with that in mind. It might not be available in future JDK versions.

Tool Name

Brief Description

jrunscript

Experimental - Script shell for Java - Runs a script.

Popular posts from this blog

Design Patterns (TID)

The pattern is an organised way of solving some specific class of problems. These patterns come in to the picture at analysis and high-level-design phase. The first step of applying one pattern to the code base is first to understand the find the vector of change in the code base. Next step is to isolate the things that are subject to change form the things that are not. That is adding a layer of abstraction to the code. The goal of design patterns is isolating the changes in your code. Understand Inheritance and Composition as a solution to a specific class of problems. Inheritance : - It allows you to express differences in behavior (that's the thing that changes) in objects that all have the same interface (that's what stays the same). Composition : - Composition can also be considered a pattern, since it allows you to change—dynamically or statically—the objects that implement your class, and thus the way that class works. Some principles of designing the c...

Adobe Firefly

Adobe Firefly is designed to help developers create custom applications more quickly and easily. The platform is built on top of Adobe's existing Experience Cloud, which provides a range of tools for managing customer data and creating personalized experiences. One of the key features of Adobe Firefly is its ability to integrate with a wide range of other technologies and services. This means that developers can use the platform to build applications that connect with everything from social media platforms to IoT devices. Another important aspect of Adobe Firefly is its focus on speed and efficiency. The platform includes a range of pre-built components and templates that developers can use to quickly create new applications. It also includes a range of tools for testing and debugging applications, which can help to speed up the development process. Overall, Adobe Firefly looks like an exciting new platform for developers who are looking to create custom applications quickly and ef...

Primitive Obsession with Example

Primitive Obsession is the name of a code smell that occurs when we use primitive data types to represent domain ideas. For example, we use a string to represent a message or an integer to represent an amount of money. For Example: Code with Primitive Obsession // primitiveObsession.java public class primitiveObsession { public static void main ( String args []) { Integer [] cityPopulations = { 13000000 , // London 21903623 , // New York 12570000 , // Tokyo 1932763 , // Stockholm 1605602 , // Barcelona 4119190 // Sydney }; for ( Integer cityPopulation : cityPopulations ) { System . out . println ( cityPopulation ); } } } public class City { private final String name ; private final int population ; private final Continent continent ; public String getName () { return name ; } public int getPopulation () { return population ; } public Continent ge...