javac: Befehl nicht gefunden


111

Ich habe Java mit dem Befehl auf meinem CentOS Release 5.5- Computer installiert yum install java. Aber ich kann keine Klasse mit Javac kompilieren.

Muss ich ein anderes Paket installieren?

Ich habe versucht, die javacausführbare Datei zu finden, kann sie jedoch nicht finden.

/usr/bin/javaist wie folgt verknüpft:
/usr/bin/java-> /etc/alternatives/java
/etc/alternatives/java->/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

Ich habe die folgende Ausgabe von gesehen 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
Es sieht aus wie Ihre Lösung zu verwenden , ist yumzuinstall java-1.6.0-openjdk-devel.x86_64
Vihung

Antworten:


125

Sie haben nur die Java Runtime Environment (JRE) installiert, die keine enthältjavac . Für javacmüssen Sie die OpenJDK-Entwicklungsumgebung installieren . Sie können java-develoder installieren java-1.6.0-openjdk-devel, die beide enthalten javac.

Übrigens: Sie können herausfinden, welches Paket javaceine yumSuche bietet , z

su -c 'yum provides javac'

In neueren Versionen von CentOS, z. B. 6, ändert sich der Befehl in

su -c 'yum provides */javac'

Ein weiterer Hinweis: Verwenden yumund openjdkist nur eine Möglichkeit, das JDK zu installieren. Viele Leute bevorzugen das "Original" SDK von Sun / Oracle. Siehe Wie installiere ich Java SDK unter CentOS? und Links für Alternativen.


ja, ich bin sicher. Schauen Sie sich einfach die Paketinformationen zu java-1.6.0-openjdk.x86_64 an (scrollen Sie zum Abschnitt "Dateien") und stellen Sie fest, dass javacdieses Paket keine enthält . Schauen Sie sich dann das OpenJDK Development Environment-Paket an .
Axt.

11
Vielen Dank für Ihre Hilfe. Ich habe "yum install java-1.6.0-openjdk-devel.x86_64"
Bikash Barman

6
Auf Fedora 20 yum provides javacgibt "Keine Übereinstimmungen gefunden" aus.
Perseiden

1
aber er hat 'openjdk' installiert, oder? JDK bedeutet Java Development Kit
Rasierer

177

Arbeitete für mich mit diesem Befehl:

yum install java-devel

2
Damit wird jedoch das veraltete JDK 6 installiert. Warum wird JDK 8 nicht installiert? "yum install java" installiert JRE 8.
jamshid

Sie können die Ausgabe von "yum list" durchsuchen, um die gewünschte Java-Version zu finden, und dann "yum install <Paket>" ausführen. Für mich war es "yum install java-1.7.0-openjdk-devel.x86_64"
Tom Barron

12
Für Java8 verwendensudo yum install java-1.8.0-openjdk-devel
Raghavsood33

1
Das sollte die Antwort sein.
Nikk

Andere Java-Installationen sorgen dafür,
dass Javac

28

Verwenden Sie den folgenden sudo-Befehl:

sudo yum install java-1.6.0-openjdk-devel

2

Ich weiß nicht genau, was yum install javatatsächlich installiert wird. Aber um nach javac Existenz zu suchen, tun Sie:

> updatedb
> locate javac

vorzugsweise als Wurzel. Wenn es nicht vorhanden ist, haben Sie wahrscheinlich nur die Java-Laufzeit (JRE) und nicht das Java Development Kit (JDK) installiert. Am besten holen Sie sich dies von der Oracle-Site : Da die Linux-Repos mit den neuesten Versionen möglicherweise etwas hinterherhinken und anscheinend nur das Open-JDK liefern, im Gegensatz zum Oracle / Sun-Repos, das ich bei der Auswahl vorziehen würde .


1

Ist der Javac in einem Verzeichnis ausführbar, das Teil Ihres PATH ist?

Ich kenne das CentOS-Äquivalent des Windows-Pfads nicht, aber wenn Sie in das Java-SDK-Verzeichnis wechseln und ./javac ausführen, passiert dann etwas?


Mein Problem ist, wo die ausführbare Javac-Datei standardmäßig vorhanden sein wird
Bikash Barman

Haben Centos nicht den Befehl "Lokalisieren"? wie von @Richard vorgeschlagen
BenCr

Es tut mir leid, BenCr, ich habe einen Tippfehler korrigiert (javajc => javac), aber das System erlaubt nur die Korrektur von mindestens 6 Zeichen, also habe ich etwas mehr geändert. Auf Unix-Systemen (ist CentOS eine Art Unix?) Müssen Sie ./ angeben, um etwas im aktuellen Verzeichnis zu starten. Fühlen Sie sich frei, erneut zu bearbeiten, wenn meine Änderungen genehmigt werden.
Benutzer unbekannt

Hast du die falsche Antwort akzeptiert? Wenn ja, wechseln Sie bitte zur richtigen, um die Leser nicht zu verwirren.
Axt.

0

Sie haben die Java Runtime Environment (JRE) installiert, sie enthält jedoch kein Javac.

Holen Sie sich also auf dem Terminal Zugriff auf den Root-Benutzer sudo -iund geben Sie das Passwort ein. Geben Sie ein yum install java-devel, daher werden Pakete von Javac in Fedora installiert.


0

Installieren Sie dieselbe Version javacwie IhreJRE

yum install java-devel

0

Ich benutze Fedora (derzeit 31)

Selbst wenn JDKs installiert sind, muss ich JAVAC_HOME in der .bashrc angeben, zumal ich 4 Java-Versionen habe, die sudo-Alternativen verwenden - konfigurieren Sie Java, um zwischen ihnen zu wechseln.

Um den Java-Standort von Java zu finden, der in Alternativen ausgewählt wurde

readlink -f $ (welches Java)

In meinem Fall: /usr/java/jdk1.8.0_241-amd64/jre/bin/java

Also habe ich in .bashrc Folgendes gesetzt:

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/

Jetzt gibt javac –version: javac 1.8.0_241

Dies ist nützlich für diejenigen, die die Oracle-Version verwenden möchten. Denken Sie daran, Ihre .bashrc erneut zu ändern, wenn Sie eine Änderung mit Java-Alternativen vornehmen.


0

Linux Mint 19.3

Ich habe Java Oracle manuell wie folgt installiert:

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


-2

Stellen Sie sicher, dass Sie zuerst JDK / JRE installieren.

folge diesen Schritten:

Öffnen Sie das Terminal. Gehen Sie zu Ihrem Root-Wörterbuch, indem Sie Folgendes eingeben

cd /

Sie sehen den Bibliotheksordner

Folgen Sie nun diesem Weg Library/Java/JVM/bin

Sobald Sie in sind bin, können Sie die javacDatei sehen

Jetzt müssen Sie den Pfad dieses Ordners abrufen, um diesen Befehl zu schreiben

pwd

Holen Sie sich den Weg für Ihre javac.


1
Das Betriebssystem mit den OP-Namen ist CentOS.
Newb
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.