web-dev-qa-db-fra.com

impossible d'exécuter javac sur Ubuntu

J'essaie d'exécuter javac sur un terminal Ubuntu. Mais je reçois ce qui suit:

 $ 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 est déjà installé et fonctionne Sudo apt-get install openjdk-6-jdk dit 0 upgraded, 0 newly installed, 0 to remove and 322 not upgraded.

Mon jdk est installé dans/usr/lib/jvm/Java-6-open-jdk; et je suis capable de compiler et d'exécuter un programme Java à partir d'Eclipse. Mais je rencontre ce problème mentionné lors de l'utilisation d'un terminal.

28
Shuo

Le binaire javac (et probablement d'autres Java) est/ne se trouve pas dans le $PATH variable d'environnement. Vous pouvez résoudre ce problème de plusieurs manières:

  1. Ajouter /usr/lib/jvm/Java-6-open-jdk/bin à votre utilisateur $PATH variable d'environnement. Pour ce faire, ajoutez une ligne similaire à la suivante dans le .bash_profile:

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

    Vous devrez redémarrer votre session de terminal pour qu'elle prenne effet.

  2. Créez des liens symboliques vers les binaires Java à partir d'un répertoire qui fait déjà partie de votre chemin d'accès (tel que /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: il existe plusieurs autres exécutables Java dans /usr/lib/jvm/Java-6-open-jdk/bin. J'ai montré les commandes de lien symbolique pour Java et javac ci-dessus. Vous devez exécuter une commande similaire pour tous les autres exécutables que vous souhaitez utiliser.

  3. Utilisez le chemin d'accès complet directement sur la ligne de commande:

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

Mise à jour:

Apparemment, il existe une solution élégante mais spécifique à Ubuntu à ce problème. Sur un système Ubuntu, utilisez pdate-Java-alternatives .

25
Asaph