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 in terminal.
$ ./
7. Voila... after several steps, my first android project has now been created

Hope this post will help you as well. :D


bobbyhugges said...

did the trick for me, thanks !

REGer said...

thank you bro. Have a nice day!

Tar said...

I have a horrible question!
Where you copy these things?

arwan khoiruddin said...

@Tar: hahaha... I wrote all myself....

Tar said...

I know how to add them now! :)

Anonymous said...

Thank you!

Déborah said...

Thank you!!

clement said...

This was the best explanation I've found on the matter, because you've detailed your thought process, which is not only useful this time, but the next ones too. Thanks!

Anonymous said...

Hi Arwan,

Kita startup lokal di Bandung, perlu Java developer. Interested? follow twit aja @neosferatu atau email jakdev1 di yahoo dot com.

See you there!
nol delapan dua satu satu tiga satu satu empat satu sembilan satu

Harley Watts said...

android app development

José Pablo Madrigal Rodríguez said...

Thanks a lot!!!!

Anonymous said...

Thanks man you did it.

Anonymous said...

Por fin una opción valida a mi problema! gracias.

Devtapra said...

Akhirnya, seharian gak bisa2, dengan cara ini berhasil. Terimakasih gan . :D