Подтвердить что ты не робот

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"

Любые идеи, как решить эту проблему?

4b9b3361

Ответ 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

Затем выполните следующие действия:

  • Нажмите i
  • Вставить

    JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-3.b16.el6_9.x86_64
    
  • Нажмите esc

  • Нажмите: wq