Java Tool Tutorials - Herong's Tutorial Notes
Dr. Herong Yang, Version 5.11

Java Tools Terminology

This section provides quick descriptions of terms related to Java tools.

Certificate: A digitally signed statement from the issuer saying that the public key of the subject has some specific value.

Certificate Chain: A series of certificates that one certificate signs the public key of the issuer of the next certificate. Usually the top certificate (the first certificate) is self-signed, where issuer signed its own public key.

JAR (Java Archive): A platform-independent file format that aggregates many files into one. Multiple Java applets and their requisite components (.class files, images and sounds) can be bundled in a JAR file and subsequently downloaded to a browser in a single HTTP transaction, greatly improving the download speed. The JAR format also supports compression, which reduces the file size, further improving the download time. In addition, the applet author can digitally sign individual entries in a JAR file to authenticate their origin. It is fully extensible.

"jar": A command line tool for managing JAR files. "jar" is distributed as part of the JDK package from Sun.

"java": The Java launcher - A command line tool to launch Java applications. "java" is distributed as part of the JDK package from Sun.

"javac": The Java compier - A command line tool to compile Java source files. "javac" is distributed as part of the JDK package from Sun.

"javap": The Java Class File Disassembler - A command line tool that reads Java bytecode class files and disassembles them.

"jdb": The Java Debugger - A command line tool to debug Java applications. "jdb" is distributed as part of the JDK package from Sun.

"JDI (Java Debug Interface)": A high level Java API providing information useful for debuggers and similar systems needing access to the running state of a (usually remote) virtual machine.

"JPDA (Java Platform Debugger Architecture)": An infrastructure that allows user to build end-user debugger applications. It includes the following three-layered APIs:

  • Java Debug Interface (JDI), a high-level Java programming language interface, including support for remote debugging;
  • Java Debug Wire Protocol (JDWP), which defines the format of information and requests transferred between the debugging process and the debugger front end;
  • The JVM(TM) Tools Interface, JVM TI. This is a low-level native interface that defines the services a Java virtual machine provides for tools, including debugging. JVM TI is new in J2SE 5.0 and replaces JVMDI and JVMPI, both of which are deprecated and will be removed in a future release.

"JVM (Java Virtual Machine)": A software that simulates a central process unit (Virtual Machine) to run compiled Java code.

"keystore": A database used by JDK "keytool" command and KeyStore class to store your own private keys, and public key certificates you received from someone else. "keystore" supports the following features.

"keytool": A command line tool introduced in JDK 1.2 to manage keys and certificates using "keystore". "keytool" replaces the same functions offered by "javakey" in JDK 1.1. "keytool" offers a number functions through the following major command options.

native2ascii: Native-to-ASCII Encoding Converter - A command line tool that reads a text file stored in a non-ASCII encoding and converts it to an ASCII text file. All non-ASCII characters will be converted into \udddd sequences, where dddd is the Unicode code value of the non-ASCII character.

ZIP: A file format is a popular data compression and archival format. A ZIP file contains one or more files that have been compressed or stored.

The format was originally designed by Phil Katz for PKZIP. However, many software utilities other than PKZIP itself are now available to create, modify or open ZIP files, notably WinZip, BOMArchiveHelper, PicoZip, Info-ZIP, WinRAR and 7-Zip. Microsoft has also included minimal ZIP support (under the name "compressed folders") in later versions of its Windows operating system.

Dr. Herong Yang, updated in 2008
Java Tools Terminology