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
Похоже, ваше решение - использовать yumtoinstall 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»
Бикаш Барман

6
В Fedora 20 yum provides javacвыводится сообщение «Совпадений не найдено».
Perseids

1
но он ведь установил openjdk? JDK означает комплект разработчика java
razor

177

Работал у меня с этой командой:

yum install java-devel

2
Но при этом устанавливается устаревший JDK 6. Почему он не устанавливает JDK 8? «yum install java» устанавливает JRE 8.
jamshid 03

Вы можете выполнить grep в выводе «yum list», чтобы найти нужную версию java, а затем выполнить «yum install <package>». Для меня это было «yum install java-1.7.0-openjdk-devel.x86_64»
Том Бэррон,

12
Для java8 используйтеsudo yum install java-1.8.0-openjdk-devel
raghavsood33

1
это должен быть ответ.
nikk

Другие установки java не предоставляют javac потрачено впустую 2 часа, пока я не наткнулся на это
vivek ashodha

28

Используйте следующую команду sudo:

sudo yum install java-1.6.0-openjdk-devel

2

Я точно не знаю, что yum install javaбудет устанавливать. Но чтобы проверить наличие javac:

> updatedb
> locate javac

желательно как root. Если его там нет, вы, вероятно, установили только среду выполнения Java (JRE), а не Java Development Kit (JDK). Лучше всего получить это с сайта Oracle : поскольку репозитории Linux могут немного отставать от последних версий, а также они, похоже, предоставляют только open-jdk, а не Oracle / Sun, который я бы предпочел, учитывая выбор .


1

Находится ли исполняемый файл javac в каталоге, который является частью вашего PATH?

Я не знаю CentOS-эквивалент пути Windows, но если вы перейдете в каталог java sdk и запустите ./javac, что-нибудь произойдет?


Моя проблема в том, где исполняемый файл javac будет присутствовать по умолчанию
Бикаш Барман

у centos нет команды locate? как предложено @Richard
BenCr

Извините, BenCr, я исправил опечатку (javajc => javac), но система позволяет исправить не менее 6 символов, поэтому я изменил кое-что еще. В системах типа Unix (CentOS - это что-то вроде Unix?) Вы должны указать ./, чтобы запустить что-то в текущем каталоге. Не стесняйтесь отредактировать заново, если мои правки будут одобрены.
user unknown

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

0

Вы установили среду выполнения Java (JRE), но она не содержит javac.

Итак, на терминале получите доступ к пользователю root sudo -iи введите пароль. Введите yum install java-devel, следовательно, он установит пакеты javac в Fedora.


0

Установите ту же версию, javacчто и вашаJRE

yum install java-devel

0

Я использую Fedora (сейчас 31)

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

Чтобы найти местоположение 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 –version дает: 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.
Newb
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.