The Java Development Kit (JDK) is an implementation of either one of the Java SE, Java EE or Java ME platforms released by Oracle Corporation in the form of a binary product aimed at Java developers on Solaris, Linux, Mac OS X or Windows. This is currently not avaiable on apt-get repo, so here is quick way to setup java on ubuntu server/desktop with tar ball.

First create directory for Java

ahmed@ahmed-server:~/sun-java#  mkdir -p /usr/lib/jvm/
ahmed@ahmed-server:~/sun-java#  tar xvzf jdk1.7.0_75.tgz -C /usr/lib/jvm/

Setting Alternatives

ahmed@ahmed-server:~/sun-java#  sudo update-alternatives \
                   --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_75/bin/java" 1
ahmed@ahmed-server:~/sun-java#  sudo update-alternatives \
                   --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0_75/bin/javac" 1
ahmed@ahmed-server:~/sun-java#  sudo update-alternatives \
                   --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0_75/bin/javaws" 1
                        
update-alternatives: using /usr/lib/jvm/jdk1.7.0_75/bin/javaws to 
                                                provide /usr/bin/javaws (javaws) in auto mode.

Make sure we have the right permission.

ahmed@ahmed-server:~/sun-java#  sudo chmod a+x /usr/bin/java
ahmed@ahmed-server:~/sun-java#  sudo chmod a+x /usr/bin/javac
ahmed@ahmed-server:~/sun-java#  sudo chmod a+x /usr/bin/javaws
ahmed@ahmed-server:/usr/lib/jvm#  sudo chown -R root:root /usr/lib/jvm/jdk1.7.0_75

Configuration of Alternatives

ahmed@ahmed-server:/usr/lib/jvm#  sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode
  3            /usr/lib/jvm/jdk1.7.0_75/bin/java                1         manual mode

Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/lib/jvm/jdk1.7.0_75/bin/java to provide 
                                                            /usr/bin/java (java) in manual mode.

ahmed@ahmed-server:/usr/lib/jvm#  sudo update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).

  Selection    Path                                         Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   1051      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   1051      manual mode
  2            /usr/lib/jvm/jdk1.7.0_75/bin/javac            1         manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/jdk1.7.0_75/bin/javac to provide 
                                                        /usr/bin/javac (javac) in manual mode.
ahmed@ahmed-server:/usr/lib/jvm#  sudo update-alternatives --config javawc
update-alternatives: error: no alternatives for javawc.

Checking version

ahmed@ahmed-server:/usr/lib/jvm#  java -version
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
ahmed@ahmed-server:/usr/lib/jvm#  javac -version
javac 1.7.0_75
ahmed@ahmed-server:/usr/lib/jvm#