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 says 0 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.
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/binto your user's$PATHenvironment 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/binYou'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 forjavaandjavacabove. 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.
来源:https://stackoverflow.com/questions/8864612/unable-to-run-javac-on-ubuntu