Friday, January 17, 2014

Android studio in ubuntu - problem: 'tools.jar' seems to be not in Android Studio classpath. Please ensure JAVA_HOME points to JDK rather than JRE.

I love coding, especially Java. Because Android apps is written in Java, I would love to make one as well. Unfortunately, when I tried to install Android Studio on my Ubuntu yesterday, I got this error message:
'tools.jar' seems to be not in Android Studio classpath.
Please ensure JAVA_HOME points to JDK rather than JRE.
When I google on this error, there are so many websites and forums discuss about this error as well as the solutions. However, in linux (or ubuntu in my case), sometime we have different environment so that the solution will not always work (sometimes we have to do another thing before or after that solution). And this also happen in this case.

Here are what I did then:
1. Know what exactly the problem is: the problem is that the JAVA_HOME in my system did not point to JDK. Instead, it points to a JRE. JRE can only be used to run java applications, not to build them.
2. Check the java path used by the system. In terminal, I typed the following:
$ java -version
In my system, the output was
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

Hmm... still don't know exactly what was the problem. So I continue with this one in terminal:

$ update-alternatives --config java
In my ubuntu, the output will be

Selection    Path                                      Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
*  2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode
  3            /usr/lib/jvm/java-7-openjdk/jre/bin/java   1051      manual mode
Press enter to keep the current choice[*], or type selection number: 
3. Voila, according to some people out there, I have to use java-7-openjdk. So I have to change the selection into 3. OK... now type 3 and enter. But, wait... here's what I got.
update-alternatives: using /usr/lib/jvm/java-6-sun/jre/bin/java to provide /usr/bin/java (java) in manual mode.
update-alternatives: error: unable to make /etc/alternatives/java.dpkg-tmp a symlink to /usr/lib/jvm/java-6-sun/jre/bin/java: Permission denied

4. Aaaa... permission denied. So, I just have to put 'sudo' before the command:
$ sudo update-alternatives --config java
5. That's it... now I can choose number 3, and when I do this command:
$ java -version
The output has now changed
java version "1.7.0_21"
OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-0ubuntu0.11.10.1)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
6. In my android studio folder, I go to /bin folder and now I can call the studio.sh in terminal.
$ ./studio.sh
7. Voila... after several steps, my first android project has now been created


Hope this post will help you as well. :D