JAVA_HOME не указывает на JDK
Я пытаюсь выполнить руководство по использованию ant для создания и запуска вашего приложения. Я выполнил все шаги и создал файл сборки, но когда я пытаюсь запустить ant, он дает мне эту ошибку.
СТРОГО НЕИСПРАВНО /home/bilal/tmp/ ant/build.xml:19: невозможно найти компилятор javac; com.sun.tools.javac.Main не находится в пути к классам. Возможно, JAVA_HOME не указывает на JDK. В настоящее время установлено значение "/usr/lib/jvm/java-6-openjdk/jre"
Любые идеи, как решить эту проблему?
Ответы
Ответ 1
Переведите переменную JAVA_HOME в установку jdk, а не jre.
Вы ссылаетесь на среду выполнения, а не на комплект разработчика - он не может найти компилятор, потому что его не существует.
Из строки, которую вы опубликовали, в которой говорится, что у вас есть open-jdk, вы можете просто удалить jre в конце:
export JAVA_HOME='/usr/lib/jvm/java-6-openjdk/'
Ответ 2
Вы установили java...
apt-get install default-jre
Но не JDK...
apt-get install default-jdk
Ответ 3
Это по дизайну. Вы не можете использовать ant java.home
(который является свойством java.lang.System
) взаимозаменяемо с тем, как JAVA_HOME
устанавливается в среде ОС. Вероятно, вы пытаетесь утвердить местоположение компилятора Java с принципиально иным значением из другого уровня свойства - т.е. java.home(из ant внутренних внутренних компонентов Java) указывает на среду выполнения Java в <any_installed_java_pointed_to_by_ant>/jre
, тогда как JDK_HOME (из среда ОС) обычно устанавливается на <DOWNLOADED_AND_INSTALLED_JAVA_DEVELOPMENT_KIT>
.
См. мой вопрос и ответ здесь для более подробной информации: Где ant установить его "java.home" (и это неправильно), и предполагается, что он добавляет '/jre '?
Решение заключается в доступе к свойству системной среды в ant с помощью ${env.JAVA_HOME}
. Укажите, какой java использовать явно в Javac Task, установив для свойства executable
путь javac и свойство fork
в yes (см. Ant Javac Task Documentation). Таким образом, не имеет значения, что среда Java ant запущена внутри, компилятор всегда четко определен!
Ответ 4
Я знаю, что этот вопрос старый, но принятый ответ больше не работает, и поскольку это первая ссылка на поиск Google, я расскажу, как я решил эту проблему.
для eclipse с помощью ubuntu:
перейдите в Window- > Preferences → Ant → Runtime- > Выберите Ant_Home_Entries и щелкните по добавлению внешних банок, затем найдите в проводнике файлов, где находится ваш jdk (по умолчанию находится в /usr/lib/jvm/ ) и в в папке lib вашего jdk вы найдете tool.jar. выберите этот вариант и нажмите "Применить".
попытайтесь построить свой проект, и все должно сработать!
примечание: я долгое время не использовал ant, но нуждался в нем для генератора рабочей нагрузки кучеряния ycsb (http://www.couchbase.com/wiki/display/couchbase/Load+Generator+Setup), если кто-то застрял на этом.
Ответ 5
Похоже, вы сейчас указываете JAVA_HOME на /usr/lib/jvm/java-6-openjdk/jre
, который, как представляется, является JRE, а не JDK. Попробуйте установить JAVA_HOME на /usr/lib/jvm/java-6-openjdk
.
JRE не содержит компилятор Java, содержит только JDK (Java Developer Kit).
Ответ 6
JAVA_HOME, который у вас выше, указывает только на JRE, который не содержит компилятор. Установите JAVA_HOME в
/usr/lib/jvm/java-6-openjdk
... и повторите попытку.
Ответ 7
У меня была аналогичная проблема, и выяснилось, что проблема связана с версиями 6 и 7 OpenJDK. Ответ приходит от r-старшего на форумах ubuntu (http://ubuntuforums.org/showthread.php?t=1977619) --- просто удалите версию 6:
sudo apt-get remove openjdk-6-*
убедитесь, что JAVA_HOME и CLASSPATH не настроены на что-либо, поскольку на самом деле это не проблема.
Ответ 8
Я использую Windows 7 и борюсь с той же проблемой. Я исправил это, изменив переменные среды.
Чтобы изменить переменные среды нажмите здесь
Я добавил ";% JAVA_HOME%/bin" в конец переменной пути и добавил новую переменную "JAVA_HOME" и установил ее значение в расположение моего JDK "C:\Program Files\Java\jdk1.8.0_11". После этого я перезапустил свою командную строку Node.js, и она сработала.
Обратите внимание, что каталог JDK может отличаться от моего. Кроме того, в зависимости от вашей установки вам может потребоваться перезагрузить компьютер после установки переменных среды.
Ответ 9
Я просто скопировал файл tools.jar из папки JDK\lib в папку JRE\lib. С тех пор он работал как чемпион.
Ответ 10
для centos yum -y install java-1.7.0-openjdk-devel.x86_64
и обновить JAVA_HOME =/usr/lib/jvm/java-1.7.0-openjdk.x86-64
Ответ 11
Опыталась эта проблема при попытке запустить эмулятор android с помощью Meteor 1.0 на элементарной ОС Luna (на основе источников Ubuntu 12.04 LTS).
openjdk-6-jdk, а также jre. В конце концов, не ожидая каких-либо успехов, я попробовал:
sudo apt-get remove openjdk-6-*
это привело к полностью ожидаемым ошибкам, поэтому я продолжил работу с
sudo apt-get install openjdk-6-jdk
и все сработало. Наведите указатель мыши.
Ответ 12
В Ubuntu 14.04 я нашел две части для решения проблемы:
- Удалите
/jre
из переменной среды. Для меня: export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
- Установите JDK, а также JRE:
sudo apt-get install default-jdk
Ответ 13
Как только вы обновите путь JAVA_HOME, как указано в ответе, вы должны сделать следующее:
$source ~/.bashrc
Это обновит bashrc, покажет снова обновленный путь в $JAVA_HOME.
Ответ 14
Execute:
$ export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-3.b16.el6_9.x86_64
и установите среду операционной системы:
vi /etc/environment
Затем выполните следующие действия: