unable to run javac on Ubuntu
The javac
binary (and probably other java binaries) is/are not in your user's $PATH
environment variable. There are several ways you can address this:
-
Add
/usr/lib/jvm/java-6-open-jdk/bin
to your user's$PATH
environment variable. You can do this by adding a line similar to the following in your user's.bash_profile
:export PATH=${PATH}:/usr/lib/jvm/java-6-open-jdk/bin
You'll have to restart your terminal session for it to take effect.
-
Create symbolic links to the java binaries from some directory that's already part of your path (such as
/usr/bin
)sudo ln -s /usr/lib/jvm/java-6-open-jdk/bin/java /usr/bin/
sudo ln -s /usr/lib/jvm/java-6-open-jdk/bin/javac /usr/bin/
BTW: There are several other java executables in
/usr/lib/jvm/java-6-open-jdk/bin
. I've shown the symlink commands forjava
andjavac
above. You should run similar command for any other executables you may want to use. -
Use the fully qualified path directly on the command line:
$ /usr/lib/jvm/java-6-open-jdk/bin/javac
Update:
Apparently, there is an elegant, but Ubuntu-specific solution to this problem. When on an Ubuntu system, use update-java-alternatives.
Shuo
Updated on January 16, 2020Comments
-
Shuo over 4 years
I'm trying to run javac on a Ubuntu terminal. But I get the following:
$ javac 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 Try: sudo apt-get install <selected package>
jdk is already installed and running
sudo apt-get install openjdk-6-jdk
says0 upgraded, 0 newly installed, 0 to remove and 322 not upgraded.
My jdk is installed in /usr/lib/jvm/java-6-open-jdk; and I'm able to compile and run a java program from eclipse. But I'm having this fore-mentioned problem when using a terminal.