Monday, May 6, 2013

Java Development Kit 7 On Windows, Macintosh and Ubuntu Linux



How to Install and
Get Started with Java Programming 
(on Windows, Mac & Ubuntu)

Java Development Kit (JDK) 1.7 (officially named Java SE 7), which is freely available from Sun Microsystems (now part of Oracle), is needed for writing Java programs. JDK can be downloaded from the Java mother site @ (or
JRE (Java Runtime) is needed for running Java programs. JDK (Java Development Kit), which includes JRE plus the development tools (such as compiler and debugger), is need for writing as well as running Java programs. Since you are supposed to write Java Programs, you should install JDK, which includes JRE.
JDK Versions
The various JDK versions are:
  1. JDK Alpha and Beta (1995): Sun announced Java in September 23, 1995.
  2. JDK 1.0 (January 23, 1996): Originally called Oak (named after the oak tree outside James Gosling's office). Renamed to Java 1 in JDK 1.0.2.
  3. JDK 1.1 (February 19, 1997): Introduced AWT event model, inner class, JavaBean, JDBC, and RMI.
  4. J2SE 1.2 (codename Playground) (December 8, 1998): Rebranded as "Java 2" and renamed JDK to J2SE (Java 2 Standard Edition). Also released J2EE (Java 2 Enterprise Edition) and J2ME (Java 2 Micro Edition). Included JFC (Java Foundation Classes - Swing, Accessibility API, Java 2D, Pluggable Look and Feel and Drag and Drop). Introduced Collection Framework and JIT compiler.
  5. J2SE 1.3 (codename Kestrel) (May 8, 2000): Introduced Hotspot JVM.
  6. J2SE 1.4 (codename Merlin) (February 6, 2002): Introduced assert, non-blocking IO (nio), logging API, image IO, Java webstart, regular expression support.
  7. J2SE 5.0 (codename Tiger) (September 30, 2004): Officially called 5.0 instead of 1.5. Introduced generics, autoboxing/unboxing, annotation, enum, varargs, for-each loop, static import.
  8. Java SE 6 (codename Mustang) (December 11, 2006): Renamed J2SE to Java SE (Java Standard Edition).
  9. Java SE 7 (codename Dolphin) (July 28, 2011): First version after Oracle purchased Sun (called Orcale JDK).
  10. Java SE 8: expected in summer 2013.

1.  How To Install JDK on Windows

Step 0(a): Un-Install Older Version(s) of JDK/JRE
I recommend that you install the latest JDK, but it can be messy if you have multiple versions of JDK/JRE.
If you have previously installed older version(s) of JDK/JRE, un-install ALL of them. Run "Control Panel" ⇒ Program and Features ⇒ Un-install programs begin with "Java", such as "Java SE Development Kit" and "Java SE Runtime". If you are not sure whether you have older version(s) of JDK, check!
Step 0(b): Understand Windows' CMD Shell
Programmers need to know how to use CMD shell to issue commands. If you are completely new to CMD, read "Programmer's Survival Guide for Windows".
Step 1: Download JDK
  1. Goto Java SE download site @
  2. Click the "Download" button under "JDK" of "Java SE 7".
  3. Choose your operating platform, e.g., Windows x86 for 32-bit Windows OS or Windows x64 for 64-bit Windows OS. You can check whether your Windows OS is 32-bit or 64-bit via "Control Panel" ⇒ System ⇒ Under the "System Type".
Step 2: Install JDK and JRE
Run the downloaded installer (e.g., "jdk-7uxx-windows-i586.exe"), which installs both the JDK (Java Development Kit) and JRE (Java Runtime). By default, the JDK will be installed in directory "C:\Program Files\Java\jdk1.7.0_{xx}", where {xx} denotes the latest upgrade number; and JRE in "C:\Program Files\Java\jre7".
For novices, accept the defaults. Simply click "next"..."next"... to install JDK in "C:\Program Files\Java\jdk1.7.0_{xx}" and JRE in "C:\Program Files\Java\jre7". Take note of you JDK installed directory. I shall refer to the JDK installed directory as <JAVA_HOME>, hereafter, in this article.
(For Advanced Users Only) The default JDK/JRE directories work but I recommend avoiding "Program Files" directory because of that blank character in the directory name. You may change the installed directories for JDK and JRE during installation. I personally installed JDK and all my programming tools in "d:\bin" (instead of "C:\Program Files") for ease of maintenance.
Step 3: Include JDK's "bin" Directory in the PATH
Windows OS searches the current directory and the directories listed in the PATH environment variable for executable programs. JDK's programs (such as Java compiler javac.exe and Java runtimejava.exe) reside in directory "<JAVA_HOME>\bin" (where <JAVA_HOME> denotes the JDK installed directory, e.g., C:\Program Files\Java\jdk1.7.0_{xx}). You need to include the "<JAVA_HOME>\bin" directory in the PATH.
To edit the PATH environment variable in Windows 2000/XP/Vista/7/8:
  1. Click "Start" button ⇒ "Control Panel" ⇒ "System" ⇒ (Vista/7/8 only) "Advanced system settings".
  2. Switch to "Advanced" tab ⇒ "Environment Variables..."
  3. In "System Variables" box, scroll down to select "PATH" ⇒ "Edit..."
  4. (CAUTION: Read this paragraph 3 times before doing this step! There is no UNDO) In "Variable value" field, INSERT "c:\Program Files\Java\jdk1.7.0_{xx}\bin" (VERIFY that this is your JDK's binary directory) IN FRONT of all the existing directories, followed by a semi-colon (;) which separates the JDK's binary directory from the rest of the existing directories. DO NOT DELETE any existing entries; otherwise, some existing applications may not run.
    Variable name  : PATH
    Variable value : c:\Program Files\Java\jdk1.7.0_{xx}\bin;[exiting entries]
(For Advanced Users Only)
I suggested that you place the JDK bin directory in front of "c:\windows\system32" and "c:\windows". This is because some Windows systems may have an out-dated copy of JDK/JRE in these directories. Do a search for "java.exe", and you will be amazed by the findings.
You could read "Java Applications and Environment Variable" for more discussions about PATH environment variable.
I also recommend that you define an environment variable called JAVA_HOME, which contains the JDK installed directory, and include the JDK bin directory in the PATH via JAVA_HOME, i.e.,PATH=%JAVA_HOME%\bin;.....
Step 4: Verify the JDK Installation
Launch a CMD shell (Click "Start" button ⇒ run... ⇒ enter "cmd"; or "Start" button ⇒ All Programs ⇒ Accessories ⇒ Command Prompt).
  1. Issue a "path" command to list the contents of the PATH environment variable. Check the output and make sure that <JAVA_HOME>\bin is listed in the PATH.
    prompt> path
    PATH=c:\Program Files\Java\jdk1.7.0_{xx}\bin;[other entries]
  2. Issue the following commands to verify that JDK/JRE are properly installed and display their version:
    prompt> java -version
    java version "1.7.0_{xx}"
    Java(TM) SE Runtime Environment (build 1.7.0_{xx}-b11)
    Java HotSpot(TM) Client VM (build 23.3-b01, mixed mode, sharing)
    prompt> javac -version
    javac 1.7.0_{xx}
Step 5: Write a Hello-World Java Program
  1. Create a directory to keep all your works, e.g., d:\myproject, or any directory of your choice. Do NOT save your works in "Desktop" or "Documents" as they are hard to locate. The directory name shall not contain blank or special characters. Use meaningful but short name as it is easier to type.
  2. Launch a programming text editor (such as TextPad or NotePad++). Begin with a new file and enter the following source code. Save the file as "", under your work directory (e.g.,d:\myproject).
     * First Java program to say Hello
    public class Hello {   // Save as "" under "d:\myproject"
       public static void main(String[] args) {
          System.out.println("Hello, world!");
Step 6: Compile and Run the Hello-World Java Program
  1. To compile the source code "":
    1. Start a CMD Shell (Click "Start" button ⇒ Select "run..." ⇒ Enter "cmd"; or "Start" button ⇒ All Programs ⇒ Accessories ⇒ Command Prompt).
    2. Set the Current Drive to the drive where you saved your source file "". For example, suppose that your source file is saved in drive "d", enter "d:" as follow:
      prompt> d:
    3. Set the Current Working Directory to the directory that you saved your source file via the cd (Change Directory) command. For example, suppose that your source file is saved in directory "d:\myproject".
      D:\xxx> cd \myproject
    4. Issue a dir (List Directory) command to confirm that your source file is present in the current directory.
      D:\myproject> dir
      08-May-XX  06:25 PM               277
    5. Invoke the JDK compiler "javac" to compile the source code "".
      D:\myproject> javac
      The compilation is successful if the command prompt returns. Otherwise, error messages would be shown. Correct the errors in your source file and re-compile. Check "Common JDK Installation Errors", if you encounter problem compiling your program.
    6. The output of the compilation is a Java class called "Hello.class". Issue a dir (List Directory) command again to check for the output.
      D:\myproject> dir
      xx-xxx-xx  01:53 PM               416 Hello.class
      xx-xxx-xx  06:25 PM               277
  2. To run the program, invoke the Java Runtime "java":
    D:\myproject> java Hello
    Hello, world!

Everything that can possibly go wrong will go wrong: Read "JDK Installation Common Errors".
Step 7: (Optional) Download JDK API Documentation, Samples and Demos
The JDK download does not include the documentation, which needs to be downloaded separately. In the past, I always insist that my students should have a local copy of JDK API Documentation. But, today, you can easily access the online copy by googling "JDK 7 Documentation".
To install JDK API documentation:
  1. From the Java SE download page (@, look for "Java SE 7 Documentation" (under "Additional Resources") ⇒ Download the zip-file (e.g., "" - about 57MB).
  2. Unzip into the <JAVA_HOME> (JDK installed directory). The documentation will be unzipped into "<$JAVA_HOME>\docs". Browse the JDK documentation by opening "<JAVA_HOME>\docs\index.html".
You should also download the "JDK Samples and Demos" from the Java SE download site.
Step 8: (For Advanced Users Only) JDK's Source Code
Source code for JDK is provided and kept in "<JAVA_HOME>\". I strongly recommend that you to go through some of the source files such as "", "", and "", under "java\lang".

1.1  Using TextPad for Java Programming (on Windows)

TextPad (@ is an excellent programming text editor for writingtoy Java programs. It can be configured to couple with the JDK, hence, bypassing the CMD shell. From the TextPad editor, you can invoke the JDK compiler/runtime directly via "Tools" menu ⇒ External Tools ⇒ "Compile Java" or "Run Java Application". Take note of the keyboard shortcuts - Ctrl-1 for compile and Ctrl-2 for run.
If you cannot find these commands in the "Tools" menu, goto "Configure" ⇒ Preferences... ⇒ Tools ⇒ Add ⇒ JDK Commands. You can also configure the properties of "compile" and "run" there, such as prompting for command-line arguments.
TextPad Tips and Configuration
Check HERE!

1.2  Using NotePad++ for Java Programming (on Windows)

Notepad++ (@ is a free and open-source programming editor.
You can use NotePad++ to input Java source code, and compile and run the Java program under CMD shell.
NotePad++ Customization and Tips
You can customize Notepad++ to compile and run Java programs with hot-keys. Read "NotePad++".

2.  How to Install JDK on Macs

Step 0: Understand the "Terminal"
Programmers need to know how to issue commands through the "Terminal". If you are new to Terminal, read "Programmer's Survival Guide for Macs and Ubuntu".
Step 1: Check if JDK has been Pre-Installed
In some Mac systems (earlier than Mac OS X 10.7 (Lion)), JDK has been pre-installed. To check if JDK has been installed, open a "Terminal" (Go ⇒ Utilities ⇒ Terminal) and issue these commands:
$ javac -version
  • If a JDK version number is returned (e.g., JDK {1.x.x}), then JDK has already been installed. Proceed to "Step 3: Write a Hello-world Java program".
  • If message "command not found" appears, JDK is NOT installed. Proceed to the "Step 2: Install JDK".
  • If message "To open javac, you need a Java runtime" appears, select "Install" and follow the instructions to install JDK. Then, proceed to "Step 3: Write a Hello-world Java program".
Step 2: Download and Install JDK
  1. Goto
  2. Login with your AppleID.
  3. Download "Java for Mac OS X {10.x} Update {u} Developer Package (DMG)". Choose {10.x} according to your Mac OS X version and the latest {u}.
  4. Double-click to install the downloaded Disk Image (DMG) file.
  5. Eject the DMG file.
  6. To verify your installation, open a "Terminal" and issue these commands:
    // Check the version of "javac" (Java Compiler) and "java" (Java Runtime)
    $ javac -version
    javac {1.x.x_xx}
    $ java -version
    java version "{1.x.x_xx}"
    Java(TM) SE Runtime Environment (build {1.x.x_xx-xxx})
    Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode, sharing)
    // Find the location of "javac" (Java Compiler) and "java" (Java Runtime)
    $ which javac
    $ which java
Step 3: Write a Hello-World Java Program
  1. Create a directory called "myproject" under your home directory (Finder ⇒ Go ⇒ Home; File ⇒ New Folder ⇒ "myproject").
    In Macs under the Terminal, the home directory of the current login user is denoted as "~". Hence, this new directory is represented as "~/myproject".
  2. Use a programming text editor (such as jEditgedit) to input the following source code and save as "" under the directory "~/myproject" created earlier.
    If you use "TextEdit" (NOT encouraged, as it is a plain text editor, NOT a programming text editor), you need to open a new file ⇒ choose "Format" ⇒ "Make Plain Text" ⇒ Enter the source code ⇒ Save as "" (without the ".txt").
     * My First Java program to say Hello
    public class Hello {   // Save as "" under "~/myproject"
       public static void main(String[] args) {
          System.out.println("Hello, world from Mac!");
Step 4: Compile and Run the Hello-World Java Program
  1. To compile the source code "", open a new "Terminal" (Go ⇒ Utilities ⇒ Terminal) and issue these commands (as illustrated):
    // Change Directory (cd) to where "" resides
    // i.e., sub-directory "myproject" under home (~)
    $ cd ~/myproject
    // Check if "" exists using list (ls) command
    $ ls   ......
    // Compile "" using JDK compiler "javac"
    $ javac
    // If error message appears, debug your source code
    // Check for the output "Hello.class"
    $ ls
    Hello.class   ......
  2. To run the Hello-world, invoke the Java Runtime "java" as follows:
    // Run "Hello.class"
    $ java Hello
    Hello, world from Mac!

3.  How to Install JDK on Ubuntu

4.  First Java Program with Eclipse

  1. You need to first install Eclipse. Read "How to Install Eclipse".
  2. You can then proceed to write your first Java program. Read "Writing your first Java Program with Eclipse".
  3. Read "Debugging program in Eclipse".

5.  First Java Program with NetBeans

  1. You need to first install NetBeans. Read "How to Install NetBeans".
  2. You can then proceed to write your first Java program. Read "Writing your first Java program with NetBeans".
  3. Read "Debugging program in Netbeans".

6.  (Advanced) External JAR Files and Native Libraries

External Java packages (such as Servlet, MySQL Connector/J, JOGL, JUnit) are often distributed in JAR files (Java Archive - a single-file package of many Java classes), with possibly Native Libraries (".lib" and ".dll" in Windows, or ".a" and ".so" in Linux/Mac).
External JAR Files (".jar")
If external JAR files are not properly included:
  • During the compilation, you will receive compilation error "cannot find symbol" on classes belonging to the external packages.
  • During execution, you will get a runtime error "Could not find or load main class xxx" or "NoClassDefFoundError".
To include external JAR files, you can either:
  1. Copy all the JAR files of the external packages to the Java's Extension Directories.
    • For Windows, the JDK extension directory is located at "<JAVA_HOME>\jre\lib\ext" (e.g., "c:\Program Files\Java\jdk1.7.0_{xx}\jre\lib\ext").
    • For Mac, the JDK extension directories are "/Library/Java/Extensions" and "/System/Library/Java/Extensions".
    • For Ubuntu, the JDK extension directories are "<JAVA_HOME>/jre/lib/ext" (e.g., "/usr/user/java/jdk1.7.0_{xx}/jre/lib/ext") and "/usr/java/packages/lib/ext".
    The location of JDK's extension directories is kept in Java's System Property "java.ext.dirs". You can print its contents via System.out.println(System.getProperty("java.ext.dirs")).
  2. You can also include all the JAR files in the CLASSPATH environment variable. The CLASSPATH may contain directories (containing many Java classes) or JAR files (single-file archive of Java classes). If you set the CLASSPATH, you must also include the current directory (denoted as ".").
    • For Windows, set the CLASSPATH in Control Panel ⇒ System ⇒ Advanced system settings ⇒ Advanced ⇒ Environment Variables ⇒ System Variables ⇒ New ⇒ In "Variable name", enter "CLASSPATH" ⇒ In "Variable value", enter ".;path1\xxx.jar;path2\yyy.jar", where the entries are separated by a semi-colon (;).
    • For Linux and Mac OS: Edit ~/.profile or ~/.bash_profile (or /etc/profile for system-wide setting) to include the following line at the end of the file:
      export CLASSPATH=.:path1/xxx.jar:path2/yyy.jar
      The entries are separated by colon (:).
  3. You can also set the CLASSPATH in the javac/java's command-line via the option -cp <paths> (or -classpath <paths>), for example,
    // Compile Java source code
    > javac -cp .:path1/xxx.jar:path2/yyy.jar
    // Run Java class
    > java -cp .:path1/xxx.jar:path2/yyy.jar ClassName
External Native Libraries (".lib", ".dll", ".a", ".so")
Some external package may provide static or shared native libraries in the form of ".lib" (Windows' static library), ".dll" (Windows' dynamically link library), ".a" (Unix's static library), or ".so" (Unix's shared library).
Native Libraries are to be kept in a directory accessible via JRE's Property "java.library.path", which normally but not necessarily includes all the directories in the PATH environment variable.
Native libraries are not involved in the compilation. But if they are not properly included during runtime time, you will get a runtime error "java.lang.UnsatisfiedLinkError: no xxx in java.library.path".
To include external native libraries:
  1. Copy the native libraries into a system library directory, e.g., c:\windows\system32 (Windows), /usr/lib or /usr/local/lib (Linux or Mac OS). You can verify that the directory is included in Java's System Property "java.library.path", via System.out.println(System.getProperty("java.library.path")).
  2. You can also set the native library path via the java's command-line option -Djava.library.path=xxx, for example,
    > java -Djava.library.path=xxx ClassName
Using an IDE can greatly simplifies inclusion of external packages. Read "Eclipse How-To" or "NetBeans How-To".
Link to References & Resources



  1. I'm learning about Java in this blog.

    Really interesting.

    Thanks for sharing,
    Java Development

  2. Thanks for your informative article on Java. It is most popular and reliable software development platform for creating mobile application. JAVA Course in Chennai

  3. This information is impressive; I am inspired with your post writing style & how continuously you describe this topic. After reading your post, thanks for taking the time to discuss this, I feel happy about it and I love learning more about this topic.
    PHP Training Institute in Chennai

  4. The information you have given here are most worthy for me. I have implemented in my training program as well, thanks for sharing.

    Big Data Training in Chennai
    Big Data Course in Chennai

  5. If you want your ex-girlfriend or ex-boyfriend to come crawling back to you on their knees (even if they're dating somebody else now) you got to watch this video
    right away...

    (VIDEO) Text Your Ex Back?

  6. There is SHOCKING news in the sports betting world.

    It has been said that every bettor must watch this,

    Watch this now or stop betting on sports...

    Sports Cash System - Advanced Sports Betting Software.