unable to run javac on Ubuntu [closed]

2022-09-01 13:19:59

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 says sudo apt-get install openjdk-6-jdk0 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.


答案 1

The binary (and probably other java binaries) is/are not in your user's environment variable. There are several ways you can address this:javac$PATH

  1. Add to your user's environment variable. You can do this by adding a line similar to the following in your user's :/usr/lib/jvm/java-6-open-jdk/bin$PATH.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.

  2. 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 . I've shown the symlink commands for and above. You should run similar command for any other executables you may want to use./usr/lib/jvm/java-6-open-jdk/binjavajavac

  3. 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.


答案 2