Where can I find the Java SDK in Linux after installing it?
Asked Answered
U

14

228

I installed JDK using apt-get install but I don't know where my jdk folder is. I need to set the path for that. Does any one have a clue on the location?

Unorganized answered 9/3, 2011 at 19:48 Comment(2)
Linux Distribution : Debian 2.6.26Unorganized
Try /usr/local/java/ for original downloaded Oracle distributions.Simms
E
456

This depends a bit from your package system ... if the java command works, you can type readlink -f $(which java) to find the location of the java command. On the OpenSUSE system I'm on now it returns /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/java (but this is not a system which uses apt-get).


On Ubuntu, it looks like it is in /usr/lib/jvm/java-6-openjdk/ for OpenJDK, and in some other subdirectory of /usr/lib/jvm/ for Suns JDK (and other implementations as well, I think).

Debian is the same.


For any given package you can determine what files it installs and where it installs them by querying dpkg. For example for the package 'openjdk-6-jdk': dpkg -L openjdk-6-jdk

Elielia answered 9/3, 2011 at 19:53 Comment(7)
orth looking in /usr/java too on some setups I've seenNationalist
If you are to add the JDK path in android studio, add this /usr/lib/jvm/java-8-oracle/Prophetic
It seems my path is /usr/lib/jvm/java-7-openjdk-amd64.Stoll
I think readlink as given is most elegant (and efficient), but I suggest readlink -f $(which javac) - note the 'c' in case there is a strange mix of JDK and JRE on the same machine. The JDK includes a compiler (javac) and a JRE does not. However if path is not correct, which will fail and you can try this: find /usr/java -wholename '*ava/jdk*' -prune as I note in a comment below.Linson
@Winnemucca It works for me, you can find where java is and then you can find where jdk path.Stoll
in zoo.cfg file makesure you add the field initLimit=10 or initLimit=20 , this will help in first place when you gonna start zookeper for first timeKidd
On Debian/Ubuntu if you have the default-jdk or default-jre packages installed, you can resolve the symbolic link /usr/lib/jvm/default-java that will point to the default version installed JDK or JRE according with your OS version: readlink -f /usr/lib/jvm/default-javaFurlough
B
56
update-java-alternatives -l

will tell you which java implementation is the default for your system and where in the filesystem it is installed. Check the manual for more options.

Bizarre answered 9/3, 2011 at 20:27 Comment(4)
This is debian specific (at least). Other distros may not have thisColby
@dequis, it's an answer specific to debian, since the question mentioned apt-get and the distro to be Debian 2.6.26. AFAIK, it should be the same for all debian derivatives.Bizarre
I'm just pointing it out for other people. I know it's valid for this particular question.Colby
update-alternatives --list | grep java worked for me on RHELTranspire
P
37
$ which java 

should give you something like

/usr/bin/java
Prase answered 9/3, 2011 at 19:52 Comment(3)
true. i bet it is after apt-get installPrase
This does not actually point to a full JDK. 1. It is a symlink, and even if you read the symlink, the binary is also not within a JDK. For example, if I run the command readlink -f $(which javac) it prints /usr/lib/jvm/java-8-oracle/bin/javac. That bin folder is NOT a JDK. General acid-base test to see if its a JDK is to see if the current $JAVA_HOME contains a path of lib/tools.jar . In the cast of /usr/lib/jvm/java-8-oracle/bin that is not true, therefore it is not a JDK.Acton
On Centos / RHL This is what I prefer to find the JDK (if installed) find /usr/java -wholename '*ava/jdk*' -prune But behavior depends whether you are talking about OpenJDK or Oracle Java and how it was installed in the first place.Linson
C
13

Use find to located it. It should be under /usr somewhere:

find /usr -name java

When running the command, if there are too many "Permission denied" message obfuscating the actual found results then, simply redirect stderr to /dev/null

find /usr -name java 2> /dev/null
Chivalrous answered 9/3, 2011 at 19:51 Comment(1)
If not root (admin) you will get plenty of Permission Denied messages.Linson
V
13

This question will get moved but you can do the following

which javac

or

cd /
find . -name 'javac'
Valiant answered 9/3, 2011 at 19:53 Comment(2)
I like the second option - simple & useful if you have multiple JREs/JDKs and want to find them all.Rearmost
"find / -name 'javac'" is less typing, but requires admin (root) privilege or you will get a lot permission denied messages.Linson
S
8

Another best way to find Java folder path is to use alternatives command in Fedora Linux (I know its for Ubuntu but I hit this post from google just by its headline). Just want to share incase people like me looking for answers for fedora flavour.

To display all information regarding java

alternatives --display java
Sherrer answered 13/5, 2015 at 15:32 Comment(1)
This worked for me, returning /usr/java/jdk-[version] on FedoraClareclarence
C
5

Three Step Process: First: open Terminal->$ whereis java it would give output like this: java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

Second: ls -l /usr/bin/java It would give output like this: lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java

Third: ls -l /etc/alternatives/java output is the JDK path: lrwxrwxrwx 1 root root 46 Feb 9 10:59 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

Calenture answered 28/3, 2018 at 11:57 Comment(0)
C
3

Simple, try it:

It's /usr/local/java/jdk[version]

Clothespin answered 3/11, 2015 at 17:6 Comment(0)
D
3

This question still seems relevant, and the answer seems to be a moving target.

On my debian system (buster):

> update-java-alternatives -l
java-1.11.0-openjdk-amd64      1111       /usr/lib/jvm/java-1.11.0-openjdk-amd64

However, if you actually go look there, you'll see there are multiple directories and symbolic links placed there by the package system to simplify future maintenance.

The actual directory is java-11-openjdk-amd64, with another symlink of default-java. There is also an openjdk-11 directory, but it appears to only contain a source.zip file.

Given this, for Debian ONLY, I would guess the best value to use is /usr/lib/jvm/default-java, as this should always be valid, even if you decide to install a totally different version of java, or even switch vendors.

The normal reason to want to know the path is because some application wants it, and you probably don't want that app to break because you did an upgrade that changed version numbers.

Dupe answered 4/2, 2019 at 8:53 Comment(0)
H
3

On Linux Fedora30 several versions of the full java JDK are available, specifically package names:

java-1.8.0-openjdk-devel.x86_64 
java-11-openjdk-devel.x86_64

Once installed, they are found in: /usr/lib/jvm

To select the location/directory of a full development JDK (which is different from the simpler runtime only JRE) look for entries:

ls -ld java*openjdk*

Here are two good choices, which are links to specific versions, where you will have to select the version:

/usr/lib/jvm/java-1.8.0-openjdk
/usr/lib/jvm/java-11-openjdk
Hop answered 9/6, 2019 at 2:18 Comment(0)
M
3

below command worked in my debain 10 box!

root@debian:/home/arun# readlink -f $(which java)
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
Mcloughlin answered 19/11, 2020 at 5:54 Comment(0)
A
2

the command: sudo update-alternatives --config java will find the complete path of all installed Java versions

Archway answered 2/10, 2017 at 12:31 Comment(0)
H
0

on OpenSUSE 13.1/13.2 its: /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
version-number can be 1.7.x 1.8.x etc. check software manager witch version you have installed...

André

Hued answered 13/12, 2014 at 14:52 Comment(0)
P
0

This is the best way which worked for me Execute this Command:-

$(dirname $(readlink $(which javac)))/java_home
Philanthropy answered 24/10, 2019 at 17:30 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.