javac: comando no encontrado

111

He instalado java en mi versión 5.5 de CentOS máquina usando el comando yum install java. Pero no puedo compilar una clase usando javac.

¿Necesito instalar algún otro paquete?

He intentado localizar el javacejecutable pero no puedo localizarlo.

/usr/bin/javaestá vinculado de la siguiente manera:
/usr/bin/java-> /etc/alternatives/java
/etc/alternatives/java->/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

He visto el siguiente resultado por 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
Bikash Barman
fuente
3
Parece que su solución es utilizar yumparainstall java-1.6.0-openjdk-devel.x86_64
Vihung

Respuestas:

125

Solo instaló Java Runtime Environment (JRE), que no contienejavac . Para javac, debe instalar el entorno de desarrollo OpenJDK . Puede instalar java-develo java-1.6.0-openjdk-devel, que ambos incluyen javac.

Por cierto: puede averiguar qué paquete proporciona javacuna yumbúsqueda , p. Ej.

su -c 'yum provides javac'

en versiones más recientes de CentOS, por ejemplo, 6, el comando cambia a

su -c 'yum provides */javac'

Otra nota: usar yumy openjdkes solo una posibilidad para instalar el JDK. Mucha gente prefiere el SDK "original" de Sun / Oracle. Consulte ¿Cómo instalar Java SDK en CentOS? y enlaces para alternativas.

hacha.
fuente
Sí, estoy seguro. simplemente mire la información del paquete java-1.6.0-openjdk.x86_64 (desplácese hasta la sección "Archivos") y vea que no hay ningún javacpaquete en ese paquete. y luego mire el paquete OpenJDK Development Environment .
hacha.
11
Gracias por su ayuda. He usado "yum install java-1.6.0-openjdk-devel.x86_64"
Bikash Barman
6
En Fedora 20 yum provides javacgenera "No se encontraron coincidencias".
Perseidas
1
pero instaló 'openjdk', ¿verdad? JDK significa kit de desarrollo de Java
razor
177

Trabajó para mí con este comando:

yum install java-devel
Justin Geeslin
fuente
2
Pero eso instala el obsoleto JDK 6. ¿Por qué no instala JDK 8? "yum install java" instala JRE 8.
jamshid
Puede grep de la salida de "yum list" para encontrar la versión de java que desea, luego hacer "yum install <package>". Para mí, fue "yum install java-1.7.0-openjdk-devel.x86_64"
Tom Barron
12
Para uso de java8sudo yum install java-1.8.0-openjdk-devel
raghavsood33
1
esta debería ser la respuesta.
Nikk
Otras instalaciones de Java no proporcionan Javac desperdiciado 2 horas hasta que me topé con esto
vivek ashodha
28

Utilice el siguiente comando sudo:

sudo yum install java-1.6.0-openjdk-devel
nandal
fuente
2

No sé exactamente qué yum install javase instalará realmente. Pero para verificar la existencia de javac, haga:

> updatedb
> locate javac

preferiblemente como raíz. Si no está allí, probablemente solo haya instalado el tiempo de ejecución de Java (JRE) y no el Kit de desarrollo de Java (JDK). Es mejor que obtenga esto del sitio de Oracle : ya que los repositorios de Linux pueden estar un poco atrasados ​​con las últimas versiones y también parecen proporcionar solo el open-jdk en lugar del Oracle / Sun, que preferiría si tuviera la opción .

Richard H
fuente
1

¿El javac es ejecutable en un directorio que forma parte de su RUTA?

No sé el equivalente en CentOS de la ruta de Windows, pero si accede al directorio java sdk y ejecuta ./javac, ¿sucede algo?

BenCr
fuente
Mi problema es dónde estará presente el ejecutable javac de forma predeterminada
Bikash Barman
¿Centos no tiene el comando de localización? como lo sugiere @Richard
BenCr
Lo siento, BenCr, corregí un error tipográfico (javajc => javac) pero el sistema solo permite corregir al menos 6 caracteres, así que cambié algo más. En sistemas de tipo Unix (¿CentOS es algún tipo de Unix?), Debe especificar ./ ​​para iniciar algo en el directorio actual. No dudes en volver a editar si se aprueban mis ediciones.
usuario desconocido
aceptó la respuesta incorrecta? Si es así, cambie a la correcta para no confundir a los lectores.
hacha.
0

Ha instalado Java Runtime Environment (JRE) pero no contiene javac.

Entonces, en la terminal, obtenga acceso al usuario raíz sudo -ie ingrese la contraseña. Escriba yum install java-devel, por lo tanto, instalará paquetes de javac en fedora.

Mohnish
fuente
0

Instale la misma versión javacque suJRE

yum install java-devel
Pravin
fuente
0

Yo uso Fedora (actualmente 31)

Incluso con el JDK instalado, todavía necesito especificar JAVAC_HOME en el .bashrc, especialmente porque tengo 4 versiones de Java que usan alternativas de sudo: configure java para cambiar entre ellas.

Para encontrar la ubicación de Java de Java seleccionada en alternativas

readlink -f $ (que java)

En mi caso: /usr/java/jdk1.8.0_241-amd64/jre/bin/java

Así que configuré lo siguiente en .bashrc para:

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

exportar 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/

Ahora la versión de javac da: javac 1.8.0_241

Esto es útil para aquellos que desean utilizar la versión de Oracle. Solo recuerde cambiar su .bashrc nuevamente si realiza un cambio con las alternativas de Java.

wayneeusa
fuente
0

Linux Mint 19.3

Instalé Java Oracle manualmente, así:

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

Esto funcionó para mí: sudo dnf install java-<version>-devel

Gabriel Deml
fuente
-2

Asegúrese de instalar JDK / JRE primero.

sigue estos pasos:

terminal abierta vaya a su diccionario raíz escribiendo

cd /

verá la carpeta de la biblioteca

Ahora sigue este camino Library/Java/JVM/bin

Una vez que binentras puedes ver el javacarchivo

Ahora necesita obtener la ruta de esta carpeta para eso, solo escriba este comando

pwd

consigue el camino para tu javac.

nimish parikh
fuente
1
El sistema operativo que OP nombra es CentOS.
Nuevo