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

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.


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

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

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 .


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?


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.


0

Zainstaluj tę samą wersję javacco TwojaJRE

yum install java-devel

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.


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


-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.


1
System operacyjny, którego nazwy OP to CentOS.
Newb
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.