JDK’s bin directory – general development tools

The remaining parts of this article list the executables contained in the JDK’s bin directory, but not in the JRE’s bin directory. Lets start with some of the tools which are used in the daily development work:

jar.exe
.jar file tool – create, extract, list .jar files.

jarsigner.exe
Signing tool to sign and verify .jar files.

javac.exe
The Java compiler.

javadoc.exe
The JavaDoc generation tool.

appletviewer.exe
Standalone viewer for Java Applets.

apt.exe
Annotation processing tool – deprecated, not part of Java 8 anymore.

extcheck.exe
Check if a Java SE extension conflicts with any extension already installed in the Java SE SDK. See the tutorial at https://docs.oracle.com/javase/tutorial/ext/basics/index.html for more information.

jjs.exe
New with Java 8. Invokes the Nashorn JavaScript engine.

javafxpackager.exe
Command line tool to package and sign JavaFX applications.

javah.exe
Code generator to create C header files for JNI methods from Java native methods.

javap.exe
Class file dumping tool. Can be used to disassemble code from class files:

C:>javap.exe -c com.example.HelloWorld
Compiled from "HelloWorld.java"
public class com.example.HelloWorld implements java.lang.Runnable {
  public com.example.HelloWorld();
    Code:
       0: aload_0
       1: invokespecial #10                 // Method java/lang/Object."<init>":()V
       4: return

  public void run();
    Code:
       0: getstatic     #17                 // Field java/lang/System.err:Ljava/io/PrintStream;
       3: ldc           #23                 // String Hello World
       5: invokevirtual #25                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
       8: return

  public static void main(java.lang.String[]);
    Code:
       0: new           #1                  // class com/example/HelloWorld
       3: dup
       4: invokespecial #33                 // Method "<init>":()V
       7: invokevirtual #34                 // Method run:()V
      10: return
}

idlj.exe
IDL to Java compiler to generate Java bindings from an IDL file.

rmic.exe
Generates (static) RMI stubs/skeletons. Note that using static RMI stubs and skeletons has been deprecated – the recommendation is to use dynamically generated stubs, which makes the rmic tool obsolete.