javac: команда не знайдена


111

Я встановив Java в моїй машині CentOS випуску 5.5 за допомогою команди yum install java. Але я не в змозі скласти клас за допомогою javac.

Чи потрібно мені встановити будь-який інший пакет?

Я намагався знайти javacвиконуваний файл, але не можу його знайти.

/usr/bin/javaпов'язано так:
/usr/bin/java-> /etc/alternatives/java
/etc/alternatives/java->/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

Я бачив такий результат 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
Схоже , ваше рішення використовувати yumдляinstall java-1.6.0-openjdk-devel.x86_64
Vihung

Відповіді:


125

Ви встановили лише середовище виконання Java (JRE), яке не міститьjavac . Тому що javacвам потрібно встановити середовище розробки OpenJDK . Ви можете встановити java-develабо java-1.6.0-openjdk-devel, що включають обидва javac.

До речі: ви можете з'ясувати , який пакет надає javacз yumпошуком , наприклад ,

su -c 'yum provides javac'

в останніх випусках CentOS, наприклад 6 команда змінюється на

su -c 'yum provides */javac'

Ще одна примітка: використання yumі openjdkлише одна можливість встановлення JDK. Багато людей віддають перевагу "оригінальному" SDK Sun / Oracle. Див. Як встановити Java SDK на CentOS? та посилання на альтернативні варіанти.


так, я впевнений просто подивіться інформацію про пакет java-1.6.0-openjdk.x86_64 (прокрутіть до розділу "Файли") і переконайтесь, що javacв цьому пакеті немає. а потім подивіться на пакет середовища OpenJDK Development Environment .
сокира.

11
Дякую за допомогу. Я використав "yum install java-1.6.0-openjdk-devel.x86_64"
Bikash

6
У Fedora 20 yum provides javacвиходів "Не знайдено відповідностей".
Персейди

1
але він встановив 'openjdk', правда? JDK означає комплект для розробки java
бритва

177

Працював для мене з цією командою:

yum install java-devel

2
Але це встановлює застарілий JDK 6. Чому він не встановлює JDK 8? "yum install java" встановлює JRE 8.
джамшид

Ви можете зібрати висновок "yum list", щоб знайти потрібну версію Java, а потім зробіть "yum install <package>". Для мене це було "yum install java-1.7.0-openjdk-devel.x86_64"
Том Баррон

12
Для використання java8sudo yum install java-1.8.0-openjdk-devel
raghavsood33

1
це має бути відповіддю.
nikk

Інші інсталяції Java
наносять


2

Я не знаю точно, що yum install javaнасправді встановить. Але для перевірки існування javac зробіть:

> updatedb
> locate javac

бажано як корінь. Якщо його там немає, ви, мабуть, встановили лише програмування Java (JRE), а не комплект Java Development Kit (JDK). Вам найкраще отримати це з сайту Oracle : оскільки репост Linux може дещо відстати від останніх версій, а також вони, здається, постачають лише open-jdk на відміну від версії Oracle / Sun, яку я вважаю за краще вибирати .


1

Чи виконується javac у каталозі, який є частиною вашого PATH?

Я не знаю еквівалент CentOS шляху до Windows, але якщо ви перейдете до каталогу java sdk і запустите ./javac чи щось трапиться?


Моя проблема - де за замовчуванням буде присутній виконуваний файл javac
Bikash Barman

не має центос команду locate? як запропонував @Richard
BenCr

Вибачте, BenCr, я виправив помилку (javajc => javac), але система дозволяє виправити принаймні 6 символів, тому я змінив щось більше. У системах типу Unix (це CentOS якийсь тип Unix?) Потрібно вказати ./, щоб запустити щось у поточному каталозі. Ви можете змінити зміни, якщо мої зміни будуть затверджені.
користувач невідомий

ти прийняв неправильну відповідь? якщо так, будь ласка, змініть на правильний, щоб не бентежити читачів.
сокира.

0

Ви встановили середовище виконання Java (JRE), але воно не містить javac.

Тож на терміналі отримайте доступ до кореневого користувача sudo -iта введіть пароль. Введіть yum install java-devel, отже, він встановить пакети javac у Fedora.



0

Я використовую Fedora (зараз 31)

Навіть із встановленим JDK, мені все одно потрібно вказати JAVAC_HOME у .bashrc, тим більше, що у мене є 4 версії Java, які використовують альтернативи sudo --configure java для перемикання між ними.

Щоб знайти місце розташування Java, вибране в якості альтернативи

readlink -f $ (яка Java)

У моєму випадку: /usr/java/jdk1.8.0_241-amd64/jre/bin/java

Тому я встановив наступне в .bashrc:

експортувати JAVA_HOME = / usr / java / jdk1.8.0_241-amd64 / jre / bin / java

експортувати JAVAC_HOME = / usr / java / jdk1.8.0_241-amd64 / bin / javac

експортувати PATH = $ PATH: /usr/java/jdk1.8.0_241-amd64/jre/bin

експортувати PATH = $ PATH: /usr/java/jdk1.8.0_241-amd64/bin/

Тепер javac –версія дає: javac 1.8.0_241

Це корисно для тих, хто хоче використовувати версію Oracle. Просто не забудьте знову змінити .bashrc, якщо ви внесете зміни з альтернативами Java.


0

Linux Mint 19.3

Я встановив Java Oracle вручну, як це:

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


-2

Переконайтесь, що спочатку встановите JDK / JRE.

виконайте наступні кроки:

відкрити термінал, перейдіть до кореневого словника, ввівши

cd /

ви побачите папку Бібліотека

Тепер ідіть цим шляхом Library/Java/JVM/bin

Як тільки ви потрапите у binвас, ви можете побачити javacфайл

Тепер вам потрібно отримати шлях до цієї папки, щоб просто написати цю команду

pwd

отримати шлях для свого javac.


1
Операційна система назвами OP є CentOS.
Ньюб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.