javac: nie znaleziono polecenia

111

Zainstalowałem Javę na moim komputerze CentOS w wersji 5.5 za pomocą polecenia yum install java. Ale nie mogę skompilować klasy przy użyciu javac.

Czy muszę instalować inny pakiet?

Próbowałem zlokalizować javacplik wykonywalny, ale nie mogę go zlokalizować.

/usr/bin/javajest powiązany w następujący sposób:
/usr/bin/java-> /etc/alternatives/java
/etc/alternatives/java->/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

Widziałem następujące dane wyjściowe 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
źródło
3
Wygląda na to, rozwiązaniem jest użycie yumdoinstall java-1.6.0-openjdk-devel.x86_64
Vihung

Odpowiedzi:

125

Zainstalowano tylko środowisko Java Runtime Environment (JRE), które nie zawierajavac . W przypadku javacmusisz zainstalować środowisko programistyczne OpenJDK . Możesz zainstalować java-devellub java-1.6.0-openjdk-devel, które zawierają javac.

Przy okazji: można dowiedzieć się, który pakiet zawiera javacw yumwyszukiwarce , np

su -c 'yum provides javac'

w nowszych wersjach CentOS, np. 6, polecenie zmienia się na

su -c 'yum provides */javac'

Kolejna uwaga: użycie yumi openjdkjest tylko jedną możliwością zainstalowania JDK. Wiele osób woli „oryginalny” SDK firmy Sun / Oracle. Zobacz Jak zainstalować Java SDK na CentOS? i linki do alternatyw.

topór.
źródło
tak jestem pewna. wystarczy spojrzeć na informacje o pakiecie java-1.6.0-openjdk.x86_64 (przewiń do sekcji „Pliki”) i zobaczyć, że nie ma javacw tym pakiecie. a następnie spójrz na pakiet OpenJDK Development Environment .
siekiera.
11
Dziękuję za pomoc. Użyłem „yum install java-1.6.0-openjdk-devel.x86_64”
Bikash Barman
6
W Fedorze 20 yum provides javacwyświetla komunikat „Nie znaleziono dopasowań”.
Perseids
1
ale zainstalował „openjdk”, prawda? JDK oznacza zestaw deweloperski Java
Razor
177

Pracował dla mnie z tym poleceniem:

yum install java-devel
Justin Geeslin
źródło
2
Ale to powoduje zainstalowanie przestarzałego JDK 6. Dlaczego nie instaluje JDK 8? "yum install java" instaluje środowisko JRE 8.
jamshid
Możesz grepować wynik polecenia "yum list", aby znaleźć żądaną wersję Java, a następnie wykonać polecenie "yum install <package>". Dla mnie było to „yum install java-1.7.0-openjdk-devel.x86_64”
Tom Barron
12
Do użytku java8sudo yum install java-1.8.0-openjdk-devel
raghavsood33
1
to powinna być odpowiedź.
nikk
Inne instalacje Java nie zapewniają, że javac zmarnowałem 2 godziny, dopóki nie
natknąłem
28

Użyj następującego polecenia sudo:

sudo yum install java-1.6.0-openjdk-devel
nandal
źródło
2

Nie wiem dokładnie, co yum install javawłaściwie zainstaluję. Ale aby sprawdzić istnienie javaca, wykonaj:

> updatedb
> locate javac

najlepiej jako root. Jeśli go tam nie ma, prawdopodobnie zainstalowałeś tylko środowisko wykonawcze Java (JRE), a nie zestaw Java Development Kit (JDK). Najlepiej, jeśli uzyskasz to ze strony Oracle : ponieważ repozytoria Linuksa mogą być nieco w tyle z najnowszymi wersjami, a także wydaje się, że dostarczają tylko open-jdk, w przeciwieństwie do Oracle / Sun, który wolałbym, biorąc pod uwagę wybór .

Richard H.
źródło
1

Czy plik wykonywalny javac znajduje się w katalogu, który jest częścią ścieżki PATH?

Nie znam odpowiednika ścieżki systemu Windows w CentOS, ale jeśli wykonasz cd do katalogu java sdk i uruchomisz ./javac, czy coś się stanie?

BenCr
źródło
Mój problem polega na tym, że plik wykonywalny javac będzie domyślnie obecny
Bikash Barman
czy centos nie ma polecenia zlokalizuj? zgodnie z sugestią @Richard
BenCr
Przepraszam, BenCr, poprawiłem literówkę (javajc => javac), ale system pozwala tylko na poprawienie co najmniej 6 znaków, więc zmieniłem coś więcej. W systemach typu Unix (czy CentOS jest rodzajem Uniksa?) Musisz określić ./, aby rozpocząć coś w bieżącym katalogu. Zapraszam do ponownej edycji, jeśli moje zmiany zostaną zatwierdzone.
użytkownik nieznany
czy przyjąłeś złą odpowiedź? jeśli tak, zmień na właściwy, aby nie zmylić czytelników.
siekiera.
0

Zainstalowałeś środowisko Java Runtime Environment (JRE), ale nie zawiera ono javac.

Więc na terminalu uzyskaj dostęp do użytkownika root sudo -ii wprowadź hasło. Wpisz yum install java-devel, dlatego zainstaluje pakiety javac w fedorze.

Mohnish
źródło
0

Zainstaluj tę samą wersję javacco TwojaJRE

yum install java-devel
Pravin
źródło
0

Używam Fedory (obecnie 31)

Nawet po zainstalowaniu JDK nadal muszę określić JAVAC_HOME w .bashrc, zwłaszcza że mam 4 wersje Javy używające alternatyw sudo - skonfiguruj java, aby przełączać się między nimi.

Aby znaleźć lokalizację Java wybranego w alternatywach języka Java

readlink -f $ (która java)

W moim przypadku: /usr/java/jdk1.8.0_241-amd64/jre/bin/java

Więc ustawiłem następujący w .bashrc na:

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

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

Teraz wersja javac daje: javac 1.8.0_241

Jest to przydatne dla tych, którzy chcą korzystać z wersji Oracle. Pamiętaj tylko, aby ponownie zmienić plik .bashrc, jeśli dokonasz zmiany za pomocą alternatyw Java.

wayneeusa
źródło
0

Linux Mint 19.3.1

Zainstalowałem Java Oracle ręcznie, na przykład:

$ sudo ln -s /usr/lib/jvm/java-1.8.0_211/bin/javac /usr/bin/javac
jkolive
źródło
0

To zadziałało dla mnie: sudo dnf install java-<version>-devel

Gabriel Deml
źródło
-2

Upewnij się, że najpierw zainstalowałeś JDK / JRE.

wykonaj następujące kroki:

otwórz terminal, przejdź do słownika głównego, wpisując

cd /

zobaczysz folder Library

Teraz podążaj tą ścieżką Library/Java/JVM/bin

Po wejściu binmożesz zobaczyć javacplik

Teraz musisz uzyskać ścieżkę do tego folderu, po prostu napisz to polecenie

pwd

zdobądź ścieżkę dla swojego javac.

nimish parikh
źródło
1
System operacyjny, którego nazwy OP to CentOS.
Newb