JDK : Java Glossary


jdk duke logo JDK
Introduction Failed Installs
Which Java? JDK Differences
32 or 64 bit? Multiple JDKs
Downloading the JDK Upgrading Your JDK to a New Version
Testing The JDK Requests For Enhancement
Installing in Linux JDK Release Dates
Contents of the JDK JRE
Why Three Copies? Books


JDK (Java Development Kit). Formerly foppishly called the SDK (Software Development Kit). It is free and you may freely distribute any programs you create with it.

Various malware sites will tell you that your Java is out of date and you must upgrade it. They often try to make you think you are talking to Oracle. They usually gives themselves away by suggesting the wrong version number. Never install a Java that you did not download from oracle.com or java.com.
The JDK, described here, is for people who want to write their own Java programs. If all you want to do is run them, or browse Applets on the web, you should use the much smaller JRE (Java Runtime Environment) instead. You don’t need both. The JDK includes the JRE.

Which Java.exe?

When you install multiple JREs (Java Runtime Environments)and JDKs (Java Development Kits) you will have many different java.exe, javaw.exe, javaws.exe and javac.exe installed. Which one is used depends on which JREs and JDKs you have installed, which JVMs are enabled in the Java Control Panel, the SET JAVA_HOME, the path, the current directory and the phases of moon used in a pseudo random number generator to select one of the installed Javas. Verify you are using what you expect with java.exe -version.

Further, to confuse everyone, Oracle’s marketing people refer to all Java versions 1.8 versions as Java 8. The JDK consists of a Java compiler, written in Java, and a run time interpreter for your particular platform. You compose programs using a traditional text editor or an IDE (Integrated Development Environment). The term JDK also refers generally to the set of Oracle-supplied classes including the AWT (Advanced Windowing Toolkit). Apple calls the JDK the MRJ. You cannot distribute the JDK with your program. You must distribute the stripped down JRE instead.

To further confuse you, Oracle refers to the various downloads of Java updates. They are not updates, but entire new versions. You don’t need a previous version installed.

To use the JDK you must be running W2K, XP, W2003, Vista, W2008, W7-32, W7-64, W8-32, W8-64, W2012, W10-32, W10-64, Linux, LinuxARM, LinuxX86, LinuxX64, Ubuntu, Solaris, SolarisSPARC, SolarisSPARC64, SolarisX86, SolarisX64 and OSX.

32 or 64 bit?

The fewer JVMs (Java Virtual Machines) you have installed the better. If you have a 32-bit Windows, install just a 32-bit JDK. It will as a side effect install a 32-bit JRE. If you have a 64-bit Windows, install first a 64-bit JDK. It will as a side effect install a 64-bit JRE. Then install IntelliJ. Then if you need Java to run Applets in your browser, install a 32-bit JRE. Don’t Install any 1.7 JDKs or JREs. Set up your JAVA_HOME to use the 64-bit JDK and the path to use the 64-bit JRE. It is important to install the 32-bit JRE last so your browsers can find it. Set up the association for *.jar to use the 32-bit java.exe.

The associations for *.jar and *.jnlp are fragile. They mysteriously change to obsolete versions, or javaw.exe version without a console or even unrelated programs like Winzip.exe. Using the java.exe -jar myjar.jar syntax in your bat/btm files rather is more robust than myjar.jar. It works even when the associations are corrupted.

Downloading the JDK

Make sure you are logged in as an administrator before you install. The install will work more smoothly if you launch the install of the download with run as administrator. Some suggest it is best also to turn on UAC (User Account Control) (that irritating Visa User Account control) during the install, though I have not found this necessary.. If you have troubles downloading, turn off any sort of virus checker temporarily. The downloads are labelled as updates, but they are complete in themselves. You don’t need to install a previous version.

Below is how to get Java for Windows, Linux and Solaris. For other platforms (e.g. various Unices) see your OS (Operating System) vendor’s site. For example for NetBSD Unix Java is included in pkgsrc (the Packages System).

Version Executables Documentation What’s New
JDK 1.8.0_112

Download JDK 1.8.0_112 195MB self-installing executable. Includes JavaFX.

Last revised/verified: 2016-07-19 Select Java SE 8u102 JDK then your platform W2K, XP, W2003, Vista, W2008, W7-32, W7-64, W8-32, W8-64, W2012, W10-32, W10-64, Linux, LinuxARM, LinuxX86, LinuxX64, Ubuntu, Solaris, SolarisSPARC, SolarisSPARC64, SolarisX86, SolarisX64 and OSX and choose Windows (or whatever your platform). Note that Apple Mac OSX is now included. You don’t have to put up with a severely out of date version from Apple any more. For W7-64 and W8-64, you will need both 64-bit JDK for the desktop and a 32-bit JRE for 32-bit browsers.) If both browsers don’t show up in the Java control panel, manually add the missing one. If you have a 64-bit browser, you can run your Applets and Web starts in 64-bit too. All the common Windows browsers are still 32-bit. The version you most likely want to download is:
jdk-8u112-windows-x64.exe for 64-bit Windows.
jdk-8u112-windows-i586.exe for 32-bit Windows.

Beware, JDK 1.8 drops support for -source 1.3, 1.4 and 1.5.

JavaDB/Derby is supposed to be included in the JDK. After the install, make sure the Java DB SQL (Standard Query Language) engine install worked by running J:\Program Files\java\jdk1.8.0_112\ db\bin\sysinfo.bat and checking that it is the expected Java DB version.

The JDK, described here, is for people who want to write their own Java programs. If all you want to do is run them, or browse Applets on the web, you should use the much smaller JRE instead. You don’t need both. The JDK includes the JRE.

The Oracle installer is badly designed. Watch out for the following:

  • There are two JREs. The installer asks you about the one embedded in the JDK, and only at the last minute asks you about the separate one usually installed on C:.
  • The installer won’t automatically set up the PATH and JAVA_HOME environment variables for you.
  • The installer won’t automatically set up the associations for *.jar and *.jnlp for you.

If you selected the default C: location, it will install a

  • JDK in: C:\Program Files\java\jdk1.8.0_112\
  • and a client JRE in: C:\Program Files\java\jre1.8.0_112\ .

If you manually selected a location, then the JDK will be where you specified e.g.

  • A 64-bit JDK in J:\Program Files\java\jdk1.8.0_112\
  • or a 32-bit JDK in J:\Program Files (x86)\java\jdk1.8.0_112\ for a 32-bit Java.

browse Javadocs You can read the docs online at https://docs.oracle.com/javase/8/docs/. Many entries in the Java glossary contains links into the online docs in the Learning More section.

browse Tools

download Java documentation download API (Application Programming Interface) jdk-8u92-docs-all.zip 84MB in zipped HTML (Hypertext Markup Language) format. It has changed since the previous version, so you can’t just drag over your old docs directory. It is not at the top as advertised. Look about ¾ down the page. The link in is the middle of the page after the JDK and JRE downloads before the source downloads. It is confusing because there is a section of miscellaneous documentation at the top, which does not include the API documentation. You just unzip the download into your J:\Program Files\java\jdk1.8.0_112\ directory with folder names. There is no installer. I suggest you mark the docs directory as compressed to save space after you download and unzip it. Only the very curious will want the source downloads.

You need to download and put the documentation in: J:\Program Files\java\jdk1.8.0_112\docs\

After you have installed the documentation, build a bookmark to it in your browser

download JavaFX documentation javafx-8u92-apidocs.zip 10MB in zipped HTML format. Extract it into J:\Program Files\java\jdk1.8.0_112\api\

release notes. To use any of the 
rem compiling with JDK 1.8 features turned on
javac.exe -source 1.8 -target 1.8 MyProg.java
rem -30-
You might consider renaming src.zip to src.jar so that your IDE can see the source files for cross referencing.

The install also puts some files in "C:\Program Files\java\common files\" .

It will install two copies of the JRE, a private one with debugging turned on in J:\Program Files\java\jdk1.8.0_112\jre\ for the SDK tools and a public one with debugging turned off in C:\Program Files\java\jre1.8.0_112\ for all apps to use. The private debugging version is designed for tracing code through step by step.

JET (Just Enough Time) Version jet11.3-pro-x86 supports up to Java 1.8.0_101 (The most recent Oracle release is 1.8.0_112 ). Last revised/verified: 2016-11-02. JET supports Vista, W2008, W7-32, W7-64, W8-32, W2012, W10-32, W10-64, Linux, LinuxX86, LinuxX64 and Ubuntu. Mac OSX is coming soon. JET comes with a precompiled JRE, so you don’t actually need to install a Oracle JDK 1.8.0_101 though obviously you will need some JDK for development, usually JDK 1.8.0_112. JET jet11.3-pro-x86 now lets you natively compile Tomcat and Tomcat applications. There are currently no MPs (Modifier Packs) to download and install for Jet jet11.3-pro-x86. Last revised/verified: 2016-07-19 2014-08-04. JET supports Vista, W2008, W7-32, W7-64, W8-32, W2012, W10-32, W10-64, Linux, LinuxX86, LinuxX64 and Ubuntu. Mac OSX is coming soon. JET comes with a precompiled JRE, so you don’t actually need to install a Oracle JDK 1.7.0_76 though obviously you will need some JDK for development, usually JDK 1.8.0_112. JET jet10.5-pro-x86 now lets you natively compile Tomcat and Tomcat applications. There are currently two MPs (Modifier Packs) to download and install for Jet jet10.5-pro-x86.

Versions prior to 1.8 are no longer available unless you have a support contract.

Polishing and Testing The JDK Install

  1. Click startControl PanelJava. Make sure all your JREs/JDKs are registered there. If not ask it to find and register them. Remove any JREs/JDKs you are not using.
  2. Configure your set environment for the CLASSPATH. If you are not sure use CLASSPATH=. See environment for details of how. See classpath for details.
  3. Configure environment variable JAVA_HOME= J:\Program Files\java\jdk1.8.0_112\ to point to the JDK.
  4. Configure environment variable PATH to include the JDK binaries directory J:\Program Files\java\jdk1.8.0_112\ bin\. This ensures that javac.exe is on the path. See path for details.
  5. Set your JAVA_HOME environment variable to the JDK directory e.g. J:\Program Files\java\jdk1.8.0_112\ . Some software such as Caucho Resin finds Java using this variable rather than poking around in the registry. See environment for details on how to set it.
  6. Install unlimited strength encryption per these instructions.
  7. Configure *.jar files to be executable and clickable, so you can run them just by typing their names on the command line or double clicking them in the explorer. See making jar files executable and double clickable for details on how to set up the necessary association.
  8. Copy your various library jars into the J:\Program Files\java\jdk1.8.0_112\ jre\lib\ext\ directory.

    Sooner or later you will have to reinstall the JDK/JRE and you will lose your ext directories. You can quickly rebuild them if you maintain a bat file like this and run it after every JRE/JDK install. Adjust the file to account for where your ext dirs are and where the jars are you need.

  9. Set up your J: drive to point to the drive where you installed the JDK. For detailed instructions see J: drive.
  10. The JDK contains a JRE. Test the JRE the same way you would had you downloaded a standalone JRE.
  11. Type java.exe -version. You should see Java version 1.8.0_112 .
  12. Type javac.exe -version. You should see javac 1.8.0_112 .
  13. Compile and run a HelloWorld application.
  14. Fix any bookmarks in your browser into the JDK locally or at Oracle.
  15. If you can’t get it to work, follow the failed install instructions.

Installing under Linux

Installing a JDK/JRE under Linux is much more complicated that under Windows. You need to perform half a dozen manual installation steps. You also need to set up a soft link from each of your browser plug-ins to the corresponding Java *.so libraries. Download and study the install instructions. You will never guess them. Consult your browser for documentation on the soft links.

To access the JDK under Linux, you need to set up two environment variables JAVA_HOME and the PATH.

export JAVA_HOME=/usr/local/ 1.8.0_112
You are probably best off to leave the CLASSPATH alone. Use jars, or specify it as needed on the java.exe command line.

Contents of The JDK

Once you have the JDK installed what do you get?

Why Three Copies of the Executables?

Why does Oracle give you three copies of the executables such as java.exe?
  1. The C:\Program Files\java\jre1.8.0_112\\bin version is for ordinary production client use.
  2. The J:\Program Files\java\jdk1.8.0_112\\jre\bin version is for production servers. The java.exe there understands the -server option.
  3. The J:\Program Files\java\jdk1.8.0_112\\bin version is for debugging.
In practice, most of the files are identical. You normally just put the J:\Program Files\java\jdk1.8.0_112\\bin version on your path when developing and you get everything you need, including javac.exe, with maximal help in tracking problems.

For client use, you don’t need to put anything on the path. The JRE installer puts a dummy copy of java.exe on the path in C:\WINNT\system32 to get things started. When it is invoked, it looks in the registry to find the current actual java.exe. javaws.exe works the same way.


Failed Installs

If a JDK (or JRE) fails to behave normally, try some of these remedies:
  1. Check that the JDK/JRE download is the expected size. The download may have aborted.
  2. For Java Applets to work in a browser, there must be a copy of msvcr71.dll in the C:\Windows\system32 folder. If there isn’t, copy it from C:\Program Files\java\jre1.8.0_112\\bin.
  3. Make sure that the anti-spyware program Webroot SpySweeper, is turned off. It will interfere with installs.
  4. Make sure no copies of any of the Java utilities are running. Use the task manager to kill any that won’t quit normally.
  5. Uninstall all Java JDKs and JREs with Start ⇒ Settings Control Panel ⇒ add/remove programs.
  6. Reboot.
  7. Manually delete any remaining files in the C:\Program Files\java\jre1.8.0_112\, J:\Program Files\java\jdk1.8.0_112\ and C:\Users\user\AppData\LocalLow\Sun\ directories. Make sure there are no copies of java.exe, jawaws.exe, jawaw.exe or javac.exe anywhere on your machine including C:\Windows\System32.
  8. Manually delete any *.msi files for Java buried in the C:\Windows\ tree. Click search ⇒ Files and Folders ⇒ *.msi to track them down.
  9. Go into the registry with regedit.exe and delete all reference to the Java installation i.e. HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft. If you are not sure, leave the entry alone.
  10. Delete all the files in "C:\Documents and Settings\user\Application Data\Sun\Java\" or your equivalent, such as C:\Users\user\AppData\LocalLow\Sun\ , C:\Users\user\AppData\Roaming\Sun\ and C:\Windows\Sun\. You might have to reboot to free locks to let you kill the directories.
  11. Run a registry cleaner such as Ace to get rid of any registry references to the deleted files.
  12. Reboot.
  13. Reinstall, including setting up the set JAVA_HOME, set CLASSPATH, set PATH environment and the ext directory.
  14. Sometimes uninstall, install to a different directory, uninstall, install to the original directory will clear it.
  15. If Java runs standalone, but does not work in your browser, test your JRE browser hooks by running Wassup. It should tell you that your browser is using the JVM (Java Virtual Machine) version you just installed. Look for the line marked java.version. If Wassup does not run, or you have the wrong version, go into Start ⇒ Settings Control Panel ⇒ Java Plug-In ⇒ Browser and turn off each browser, then click apply, then turn them on again, then hit apply again. Then retest with Wassup.
  16. Have a look at the hidden Java Web Start control file "C:\Documents and Settings\user\Application Data\Java\Deployment\deployment.properties". Don’t edit it. If you see something wonky (e.g. references to an uninstalled JVM ), go into the Control Panel ⇒ Java Control Panel and turn things off and on again and hit apply to refresh the file. If that does not work, make a backup and try deleting the deployment.properties file, then try going into the Java Control Panel and clicking reset. The set everything up from scratch. If that does not work try editing a copy of the original deployment.properties file, sorting the entries first to make it clearer what they do and installing it back as the official deployment.properties.

JDK Differences

Java is compatible between versions. Old code will run, even without recompilation, on new JVM s and new code, so long it avoids new features and you compile with the -target option, will run on old JVM s,
Java JDK Releases Dates and Release Differences
Date Version Codename New Features Introduced In that Release
1996-01-23 1.0 Oak? Java released to public
1997-02-18 1.1 Sparkler No longer supported. Added a totally new event model, using Listeners, anonymous classes and inner classes. This is the level Microsoft has trapped many of its customers at. Netscape proprietary RSA code signing. Microsoft proprietary CAB (Cabinet file) code signing.
1997-09-12 1.1.4 Sparkler
1997-12-03 1.1.5 Pumpkin
1998-04-24 1.1.6 Abigail
1998-09-28 1.1.7 Brutus
1999-04-08 1.1.8 Chelsea
1998-12-04 1.2 Playground No longer supported. Added ArrayList and other Collections, added Swing (though the initial release is missing many methods). Added DSA (Digital Signature Algorithm) code signing. Added BufferedImage
1999-03-30 1.2.1 (none)
1999-07-08 1.2.2 Cricket
2000-05-08 1.3 Kestrel No longer supported. java.util.Timer, java.lang. StrictMath, Runtime. addShutdownHook, java.awt. Robot, java.awt.print. PageAttributes, java.media.sound (MIDI (Musical Instrument Digital Interface) and sampled). Hotspot introduced. RMI (Remote Method Invocation) now has the option of using CORBA (Common Object Request Broker Architecture) ’s IIOP protocol. Added RSA code signing, which quickly effectively obsoleted DSA certificates.
2001-05-17 1.3.1 Ladybird
2002-02-13 1.4 Merlin No longer supported. added regexes, assertions and nio.
2002-09-16 1.4.1 Hopper (Grasshopper)
2003-06-26 1.4.2 Mantis
2004-09-29 1.5 Tiger added StringBuilder, java.util.concurrent, generics, enums, annotations, autoboxing, covariant return types, for:each, static import and variable-length argument lists. MacOS for the PowerPC is stuck at version 1.5. .
2006-12-12 1.6 Mustang System tray, subpixel antialiasing, Document-modal, Application-modal, Toolkit-modal, Applet splash screens, JTable sorting, true double buffering, digitally signed XML (extensible Markup Language) files, JWS (Java Web Start) support for *.ico and *.png, JavaCompiler (ability to invoke javac cleanly), JDBC (Java Data Base Connectivity) 4.0, smart card API, Console. readPassword, improved drag & drop. Apple OS X 10.5 supports JDK 1.8.0_112. pluggable annotations, more.
2011-07-28 1.7 Dolphin String case lablels. binary literals. Underscores in numeric literals. Multiple Exception catch.
2013-09 8.0 none closures aka lambda λ lambda expressions, unsigned literals, annotations on Java types, date and time API (to unify Date and Calendar, use 1-based months, deal with multihour DST) tight integration with JavaFX.
Future Versions
2017-03 9.0 none better support for multi-gigabyte heaps, better native code integration and a self-tuning JVM. JSON support. Kulla scripting. At one point it included an AOT compiler, but that has probably been dropped.
2018 10.0 none Primitives behave identically to objects. 64-bit arrays and Collections. Currency.?

Upgrading Your JDK to a New Version

  1. Download and install the new JDK.
  2. Check your set environment for outdated references, e.g. JAVA_HOME, classpath, path.
  3. Update any *.bat files that point to the old JDK/JRE to point them to the new JDK/JRE.
  4. Copy your various auxiliary jars into the ext directory. See ext directory for details.
  5. Reconfigure the compiler used in your various IDE project settings, update library includes, e.g. tools.jar and recompile everything.
  6. Move the doc documentation from your old JDK to the new one
  7. Check that the association for *.jnlp is set up to point to the new javaws.exe in both Windows and your browser. See installing Java Web Start for details.
  8. If you use SlickEdit, copy src.zip to scr.jar and reindex it.
  9. If that does not work, uninstall all JDKs and JREs. Then manually remove any vestigial directories. And start over.
  10. If that does not work, clean out the Java registry entries and all the JDKs and JREs and start over. Closures, pauseless garbage collection.

Here is what I do when Oracle releases a new version of the JDK. For you, it is simpler:

  1. Notice update in Vercheck and configure new Vercheck version.
  2. Tell everyone on com.lang.java.programmer about the new version.
  3. Download and install the 64-bit JDK and 32-bit JRE.
  4. Download and install Java docs.
  5. Adjust and run search/replace script to update version 6 and 7 version numbers in all bat, java, html, xml, jnlp etc. files.
  6. Adjust fixext.btm and run it to build environment sets and construct ext libraries.
  7. Manually patch web pages about the JDK and JRE and the Java source code that records Java version into.
  8. Configure IntelliJ with new JDK.
  9. Tidy all source code (4-step process).
  10. Rebuild, clean compile everything the new javac.exe.
  11. Uninstall the old JDK and JRE. Prune the remnants.

RFE (Request For Enhancement)


book cover recommend book⇒Java SE 8 for the Really Impatientto book home
by Cay S. Horstmann 978-0-321-92776-7 paperback
publisher Addison-Wesley Professional B00HSH2QT6 kindle
published 2014-01-24
This is not a book to learn Java. It is for programmers already familiar with JDK 1.7 to learn the new features of JDK 1.8. Readers praise it for its lack of fluff and for focusing on new material, not reviewing what everyone already knows. Horstman has written many other well-regarded text books.
Australian flag abe books anz abe books.ca Canadian flag
German flag abe books.de amazon.ca Canadian flag
German flag amazon.de Chapters Indigo Canadian flag
Spanish flag amazon.es Chapters Indigo eBooks Canadian flag
Spanish flag iberlibro.com abe books.com American flag
French flag abe books.fr amazon.com American flag
French flag amazon.fr Barnes & Noble American flag
Italian flag abe books.it Nook at Barnes & Noble American flag
Italian flag amazon.it Kobo American flag
India flag junglee.com Google play American flag
UK flag abe books.co.uk O’Reilly Safari American flag
UK flag amazon.co.uk Powells American flag
UN flag other stores
Greyed out stores probably do not have the item in stock. Try looking for it with a bookfinder.

This page is posted
on the web at:


Optional Replicator mirror
of mindprod.com
on local hard disk J:

Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number