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.