web-dev-qa-db-ja.com

Ubuntuでjavacを実行できません

Ubuntuターミナルでjavacを実行しようとしています。しかし、私は次のようになります:

 $ 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は既にインストールされ、実行されていますSudo apt-get install openjdk-6-jdk0 upgraded, 0 newly installed, 0 to remove and 322 not upgraded.

私のjdkは/ usr/lib/jvm/Java-6-open-jdkにインストールされています。また、EclipseからJavaプログラムをコンパイルして実行できます。しかし、ターミナルを使用すると、この問題が発生します。

28
Shuo

javacバイナリ(およびおそらく他のJavaバイナリ)は、ユーザーの$PATH環境変数にありません。これに対処する方法はいくつかあります。

  1. /usr/lib/jvm/Java-6-open-jdk/binをユーザーの$PATH環境変数に追加します。これを行うには、ユーザーの.bash_profileに次のような行を追加します。

    export PATH=${PATH}:/usr/lib/jvm/Java-6-open-jdk/bin

    ターミナルセッションを有効にするには、ターミナルセッションを再起動する必要があります。

  2. すでにパスの一部になっているディレクトリ(/usr/binなど)からJavaバイナリへのシンボリックリンクを作成します。

    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/

    ところで:他にもいくつかのJava実行可能ファイルが/usr/lib/jvm/Java-6-open-jdk/binにあります。上記のJavaおよびjavacのシンボリックリンクコマンドを示しました。使用したい他の実行可能ファイルの同様のコマンド。

  3. コマンドラインで直接完全修飾パスを使用します。

    $ /usr/lib/jvm/Java-6-open-jdk/bin/javac

更新:

どうやら、この問題に対するUbuntu固有のエレガントなソリューションがあります。 Ubuntuシステムでは、 pdate-Java-alternatives を使用します。

25
Asaph