Celeb Glow
general | April 03, 2026

apt-get install openjdk-7-jdk doesn't install javac. Why?

The program 'javac' can be found in the following packages: * openjdk-6-jdk * ecj * gcj-4.4-jdk * gcj-4.6-jdk * gcj-4.5-jdk * openjdk-7-jdk

Then I run sudo apt-get install openjdk-7-jdk and everything works. But then javac still does not exist and I get the same error as above. Same thing with openjdk-6-jdk. Why?

4 Answers

The proper Debian/Ubuntu way to configure which javac is pointed to by /usr/bin/javac is to use the update-alternatives command. You can do it interactively, and select from a list of available options:

sudo update-alternatives --config javac

Or you can specify which option you want on the command-line:

sudo update-alternatives --set javac /usr/lib/jvm/java-7-openjdk/bin/javac

Because of the way it stores the information, using update-alternatives is not exactly equivalent (but instead is considered preferable) to manually making /usr/bin/java a symbolic link to your javac of choice. See man update-alternatives for more information about this.

If update-alternatives doesn't work, then run this command and try again:

sudo ln -s /etc/alternatives/javac /usr/bin/javac

Here's what I did. It worked.

First I installed the jdk for Java 7 like this:

sudo apt-get install openjdk-7-jdk

That might be enough: check and see if javac in your PATH by running javac -version

If not, then follow Nicholas' answer except that instead of sudo update-alternatives --config javac use this:

sudo update-alternatives --config java

And selected Java 7 at at the the prompt by typing 2:

There are 2 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
Press enter to keep the current choice[*], or type selection number:

As long as the install completed without errors, there is a javac executable on your system; it for some reason just didn't get correctly linked to /usr/bin. sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javac /usr/bin/javac will create that link and should fix your problem.

1

Not sure if this helps, but it worked for me. I had this problem, javac was simply not there, anywhere, probably because I only installed the jre. Installing the jdk after the jre fixed it.

sudo apt-get install openjdk-8-jre
sudo apt-get install openjdk-8-jdk

Afterwhich set the configurations by following the prompt:

sudo update-alternatives --config java
sudo update-alternatives --config javac

Then you can check if you configured correctly with:

java -version
javac -version

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy