javac: commande introuvable


111

J'ai installé java sur ma machine CentOS version 5.5 à l'aide de la commande yum install java. Mais je suis incapable de compiler une classe en utilisant javac.

Dois-je installer un autre package?

J'ai essayé de localiser l' javacexécutable mais je ne parviens pas à le localiser.

/usr/bin/javaest lié comme suit:
/usr/bin/java-> /etc/alternatives/java
/etc/alternatives/java->/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

J'ai vu la sortie suivante par yum list installed |grep java:

java-1.6.0-openjdk.x86_64              1:1.6.0.0-1.16.b17.el5          installed
tzdata-java.x86_64                     2011b-1.el5                     installed

3
Il semble que votre solution consiste à utiliser yumpourinstall java-1.6.0-openjdk-devel.x86_64
Vihung

Réponses:


125

Vous avez installé le Java Runtime Environment (JRE) uniquement, qui ne contient pasjavac . Pour javac, vous devez installer l' environnement de développement OpenJDK . Vous pouvez installer java-develou java-1.6.0-openjdk-devel, qui incluent tous les deux javac.

À propos: vous pouvez savoir quel package fournit javacune yumrecherche , par exemple

su -c 'yum provides javac'

sur les versions plus récentes de CentOS, par exemple 6, la commande passe à

su -c 'yum provides */javac'

Autre remarque: utiliser yumet openjdkn'est qu'une seule possibilité pour installer le JDK. Beaucoup de gens préfèrent le SDK "original" de Sun / Oracle. Consultez Comment installer le SDK Java sur CentOS? et des liens vers des alternatives.


Oui je suis sûr. regardez simplement les informations du paquet java-1.6.0-openjdk.x86_64 ( faites défiler jusqu'à la section "Fichiers") et voyez qu'il n'y en a pas javacdans ce paquet. puis regardez le package OpenJDK Development Environment .
hache.

11
Merci pour votre aide. J'ai utilisé "yum install java-1.6.0-openjdk-devel.x86_64"
Bikash Barman

6
Sur Fedora 20 yum provides javacaffiche "Aucune correspondance trouvée".
Perséides

1
mais il a installé «openjdk», non? JDK signifie kit de développement Java
rasoir

177

A travaillé pour moi avec cette commande:

yum install java-devel

2
Mais cela installe le JDK 6 obsolète. Pourquoi n'installe-t-il pas le JDK 8? "yum install java" installe JRE 8.
jamshid

Vous pouvez grep la sortie de "yum list" pour trouver la version de java que vous voulez, puis faire "yum install <package>". Pour moi, c'était "yum install java-1.7.0-openjdk-devel.x86_64"
Tom Barron

12
Pour une utilisation Java8sudo yum install java-1.8.0-openjdk-devel
raghavsood33

1
cela devrait être la réponse.
nikk

D'autres installations java ne fournissent pas javac gaspillé 2 heures jusqu'à ce que je tombe dessus
vivek ashodha le

28

Utilisez la commande sudo suivante:

sudo yum install java-1.6.0-openjdk-devel

2

Je ne sais pas exactement ce qui yum install javava réellement s'installer. Mais pour vérifier l'existence de javac, faites:

> updatedb
> locate javac

de préférence en tant que root. Si ce n'est pas le cas, vous n'avez probablement installé que le runtime Java (JRE) et non le Java Development Kit (JDK). Vous feriez mieux d'obtenir cela sur le site Oracle : comme les dépôts Linux peuvent être légèrement en retard avec les dernières versions et ils semblent également ne fournir que l'open-jdk par opposition à celui d'Oracle / Sun, ce que je préférerais étant donné le choix .


1

L'exécutable javac est-il dans un répertoire qui fait partie de votre PATH?

Je ne connais pas l'équivalent CentOS du chemin Windows, mais si vous accédez au répertoire java sdk et exécutez ./javac, quelque chose se passe-t-il?


Mon problème est de savoir où l'exécutable javac sera présent par défaut
Bikash Barman

les centos n'ont-ils pas la commande Locate? comme suggéré par @Richard
BenCr

Je suis désolé, BenCr, j'ai corrigé une faute de frappe (javajc => javac) mais le système ne permet que de corriger au moins 6 caractères, donc j'ai changé quelque chose de plus. Sur les systèmes de type Unix (CentOS est-il une sorte d'Unix?), Vous devez spécifier ./ pour démarrer quelque chose dans le répertoire courant. N'hésitez pas à rééditer, si mes modifications sont approuvées.
utilisateur inconnu

avez-vous accepté la mauvaise réponse? si c'est le cas, veuillez changer pour le bon afin de ne pas confondre les lecteurs.
hache.

0

Vous avez installé Java Runtime Environment (JRE) mais il ne contient pas javac.

Donc, sur le terminal, accédez à l'utilisateur root sudo -iet entrez le mot de passe. Tapez yum install java-devel, donc il installera les paquets de javac dans fedora.


0

Installer la même version javac que votreJRE

yum install java-devel

0

J'utilise Fedora (actuellement 31)

Même avec JDK installé, je dois toujours spécifier JAVAC_HOME dans le .bashrc, d'autant plus que j'ai 4 versions Java utilisant des alternatives sudo - configurez java pour basculer entre elles.

Pour trouver l'emplacement java de java sélectionné dans les alternatives

readlink -f $ (quel java)

Dans mon cas: /usr/java/jdk1.8.0_241-amd64/jre/bin/java

J'ai donc défini le suivant dans .bashrc sur:

export JAVA_HOME = / usr / java / jdk1.8.0_241-amd64 / jre / bin / java

export JAVAC_HOME = / usr / java / jdk1.8.0_241-amd64 / bin / javac

export PATH = $ PATH: /usr/java/jdk1.8.0_241-amd64/jre/bin

export PATH = $ PATH: /usr/java/jdk1.8.0_241-amd64/bin/

Maintenant javac –version donne: javac 1.8.0_241

Ceci est utile pour ceux qui souhaitent utiliser la version d'Oracle. N'oubliez pas de modifier à nouveau votre .bashrc si vous effectuez une modification avec des alternatives java.


0

Linux Mint 19.3

J'ai installé Java Oracle manuellement, comme ceci:

$ sudo ln -s /usr/lib/jvm/java-1.8.0_211/bin/javac /usr/bin/javac


-2

Assurez-vous d'installer d'abord JDK / JRE.

Suivez ces étapes:

terminal ouvert accédez à votre dictionnaire racine en tapant

cd /

vous verrez le dossier Bibliothèque

Suivez maintenant ce chemin Library/Java/JVM/bin

Une fois que vous entrez, binvous pouvez voir le javacfichier

Maintenant, vous devez obtenir le chemin de ce dossier pour cela, écrivez simplement cette commande

pwd

obtenez le chemin pour votre javac.


1
Le système d'exploitation que l'OP nomme est CentOS.
Newb
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.