Как установить java_home в Windows 7?
Я пошел в Переменные среды в 'Система' на панели управления и сделал две новые переменные, одну для пользовательских переменных и одну для системных переменных. Оба были названы JAVA_HOME и оба указывают на
C:\Sun\SDK\ JDK \ Bin
Но по какой-то причине я все еще получаю ошибку ниже при выполнении команды Java...
BUILD FAILED
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:161: The following error occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:141: The following error occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:137: Please set java.home to a JDK installation
Total time: 1 second
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish>lib\ant\bin\ant -f setup.xml
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
Buildfile: setup.xml
Как я могу исправить эту проблему?
18 ответов
Найти каталог установки JDK
Для начала вам нужно знать путь установки для Java Development Kit.
Откройте путь установки по умолчанию для JDK:
C:\Program Files\Java
Там должен быть подкаталог, как:
C:\Program Files\Java\jdk1.6.0_10
Примечание: нужно только указать путь к jdk без /bin в конце (как это предлагается во многих местах). например C:\Java\jdk1.6.0_31 и НЕ C:\Java\jdk1.6.0_31\bin!
Установите переменную JAVA_HOME
Когда у вас есть путь установки JDK:
- Щелкните правой кнопкой мыши значок " Мой компьютер" на рабочем столе и выберите " Свойства".
- Перейдите на вкладку " Дополнительно ", затем нажмите кнопку " Переменные среды".
- Под Системными Переменными нажмите New.
- Введите имя переменной как JAVA_HOME.
- Введите значение переменной в качестве пути установки для Java Development Kit.
- Нажмите ОК.
- Нажмите Применить изменения.
Примечание: вам может потребоваться перезагрузить Windows
Полная статья находится здесь, в моем блоге: Настройка переменной JAVA_HOME в Windows.
Получить видео решение.
То, что работает для меня, было добавление %JAVA_HOME%\bin
к переменной среды Path с JAVA_HOME
переменная окружения, указывающая на jdk
папка.
Вы должны сначала установить JDK в вашей системе.
Установить Java Home
JAVA_HOME = C: \ Program Files \ Java \ jdk1.7.0 [Расположение вашего установочного каталога JDK]
Когда у вас есть путь установки JDK:
- Щелкните правой кнопкой мыши значок "Мой компьютер" на
- Выберите Свойства.
- Нажмите вкладку "Дополнительные настройки системы" в левой части экрана.
- Aadvance Popup открыт.
- Нажмите на кнопку Переменные среды.
- Под Системными Переменными нажмите New.
- Введите имя переменной как JAVA_HOME.
- Введите значение переменной в качестве пути установки для Java Development Kit.
- Нажмите ОК.
- Нажмите Применить изменения.
Установите JAVA Path под системной переменной
PATH= C: \ Program Files \ Java \ jdk1.7.0; [Добавить значение с точкой с запятой]
В cmd (временно для этого окна cmd):
set JAVA_HOME="C:\\....\java\jdk1.x.y_zz"
echo %JAVA_HOME%
set PATH=%PATH%;%JAVA_HOME%\bin
echo %PATH%
Вам нужно установить его C:\Sun\SDK\jdk
(Предполагается, что именно здесь установлен JDK - Это не значение по умолчанию) - Не помещайте \bin в C:\Sun\SDK\jdk\bin
,
Если ваше приложение запускается только после того, как вы вошли в систему как текущий пользователь, поместите его в пользовательские переменные. Если необходимо запустить его для всех пользователей вашей системы, укажите его в системных переменных.
Вам также может понадобиться добавить %JAVA_HOME%\bin
к пути (также это зависит от того, запускаете ли вы его только от пользователя или от всех пользователей, включая Систему)
http://javahowto.blogspot.com/2006/05/javahome-vs-javahome.html
Панель управления> Java, вкладка Java, нажмите кнопку View. В параметрах времени выполнения введите:
-Djava.home=YOUR_PATH_HERE
Или когда вы выполняете Java, вы можете добавить этот параметр командной строки к команде:
java -Djava.home=PATH SomeJavaApp
Это официальное решение для настройки среды Java от www.java.com - здесь.
Существуют решения для Windows 7, Windows Vista, Windows XP, Linux/Solaris и других оболочек.
пример
Windows 7
- Выберите "Компьютер" в меню "Пуск".
- Выберите "Свойства системы" в контекстном меню.
- Нажмите Расширенные настройки системы -> вкладка Расширенные
- Нажмите Переменные среды, в разделе Системные переменные найдите PATH и щелкните по нему.
- В окнах редактирования измените PATH, добавив местоположение класса к значению PATH. Если у вас нет элемента PATH, вы можете выбрать добавление новой переменной и добавить PATH в качестве имени и местоположение класса в качестве значения.
- Снова откройте окно командной строки и запустите свой код Java.
Для тех, кто все еще находится в тупике с этой проблемой (я попробовал все вышеупомянутые предложения) -
Если у вас 64-битная версия Windows, и вы установили 32-битный JDK, кроме настройки PATH
переменные, вам также может понадобиться настроить переменные реестра.
Я вырывал свои волосы, правильно поставив PATH
переменные - все еще безрезультатно - и затем только нахождение "освобожденных" записей Java в моем реестре, по-видимому, тупик исправления "пропускающего работу" Java Runtime Environment.
Используя Process Monitor
чтобы посмотреть программу, которую я пытался начать, чтобы выяснить, где она ищет в реестре Java (среда выполнения), я с триумфом обнаружил, что она ищет в 32-битной версии записей реестра, найденных в HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment
,
В этом ключе вы должны найти подключи разных версий Java (прошлых и / или настоящих). Нажмите на подраздел последней версии (например, мой подраздел сейчас 1.7.0_25). После нажатия на этот подраздел, вы увидите значения строки реестра, перечисленные справа, и, в частности, JavaHome
а также RuntimeLib
, Вам необходимо изменить значения этих двух значений, чтобы они отражали как текущую папку, так и файл jvm.dll соответственно.
Например, в моем случае значения (ранее) были соответственно установлены в C:\Program Files (x86)\Java\jre7
а также C:\Program Files (x86)\Java\jre7\bin\client\jvm.dll
которых нет на моей машине. Мне пришлось обновить их до текущей папки и файла C:\Program Files (x86)\Java\jdk1.7.0_25\jre
а также C:\Program Files (x86)\Java\jdk1.7.0_25\jre\bin\client\jvm.dll
,
Опять же, это будет полностью зависеть как от установленной вами версии Java (JDK и / или JRE) - 32- или 64-разрядной, так и от того, на какой операционной системе вы находитесь - 32- или 64-разрядной. Просто знайте, что они отражены в разных местах в реестре (например, Wow6432Node
для 32-битных приложений, в моем случае с 32-битным JDK, установленным на 64-битной машине).
Теперь, когда я обновил эти два параметра реестра, моя программа работает без сбоев, без лишних сбоев или жалоб по поводу отсутствующей среды выполнения Java (вытекающей из реестра).
Windows 7
Перейдите в Панель управления \ Все элементы панели управления \ Учетные записи пользователей с помощью Explorer (не Internet Explorer!)
или же
Изменить мои переменные среды
Новый...
(если у вас недостаточно прав для его добавления в раздел "Системные переменные", добавьте его в раздел "Пользовательские переменные")
Добавьте JAVA_HOME в качестве имени переменной и расположение JDK в качестве значения переменной> OK
Тестовое задание:
- открыть новую консоль (cmd)
- тип
set JAVA_HOME
- ожидаемый результат:
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
- ожидаемый результат:
Нам нужно провести различие между двумя переменными среды, которые обсуждаются здесь взаимозаменяемо. Одним из них является переменная JAVA_HOME. Другой является переменная Path. Любой процесс, который ссылается на переменную JAVA_HOME, ищет путь поиска в JDK, а не в JRE. Использование переменной JAVA_HOME не предназначено для самого компилятора Java. Компилятор знает свое местоположение. Переменная предназначена для другого программного обеспечения, чтобы легче находить компилятор. Эта переменная обычно используется программным обеспечением IDE для компиляции и сборки приложений из исходного кода Java. Напротив, интерпретатор CMD Windows и многие другие программы первого и стороннего производителя ссылаются на переменную Path, а не на переменную JAVA_HOME.
Вариант использования 1: Компиляция из CMD
Так, например, если вы не используете какое-либо программное обеспечение IDE, и вы просто хотите иметь возможность компилировать из CMD, независимо от вашего текущего рабочего каталога, тогда вам нужно правильно установить переменную Path. В вашем случае вам даже не нужна переменная JAVA_HOME. Поскольку CMD использует Path, а не JAVA_HOME, чтобы найти компилятор Java.
Вариант использования 2: Компиляция из IDE
Однако, если вы используете какое-то программное обеспечение IDE, вам нужно в первую очередь ознакомиться с документацией. Это может потребовать установки JAVA_HOME, но может также использовать другое имя переменной для той же цели. На протяжении многих лет стандартом де-факто был JAVA_HOME, но это не всегда так.
Вариант использования 3: Компиляция из IDE и CMD
Если в дополнение к программному обеспечению IDE вы также хотите иметь возможность компилировать из CMD, независимо от вашего текущего рабочего каталога, то в дополнение к переменной JAVA_HOME вам также может понадобиться добавить путь поиска JDK к переменной Path.
JAVA_HOME vs. Path
Если ваша проблема связана с компиляцией Java, вы хотите проверить переменную JAVA_HOME и путь (где это применимо). Если ваша проблема связана с запуском Java-приложений, вы хотите проверить переменную Path.
Переменная пути используется универсально во всех операционных системах. Поскольку он определяется системой, и поскольку это переменная по умолчанию, которая используется для определения местоположения JRE, почти никогда не возникает проблем с запуском Java-приложений. Особенно в Windows, где установщики программного обеспечения обычно все настраивают для вас. Но если вы устанавливаете вручную, самое безопасное - это вообще пропустить переменную JAVA_HOME и просто использовать переменную Path для всего, как для JDK, так и для JRE. Любая последняя версия программного обеспечения IDE должна быть способна подобрать и использовать ее.
Symlinks
Символьные ссылки могут предоставить еще один способ ссылки на путь поиска JDK путем совмещения одной из существующих переменных среды.
Я не уверен насчет предыдущих версий Oracle/Sun JDK/JRE, но по крайней мере установщик для jdk1.8.0_74 добавляет путь поиска C:\ProgramData\Oracle\Java\javapath
в переменную Path, и она помещается в начало строкового значения. Этот каталог содержит символические ссылки на java.exe, javaw.exe и javaws.exe в каталоге JRE.
Таким образом, по крайней мере с Java 8 JDK и, по-видимому, с автономной Java 8 JRE, для JRE не требуется конфигурировать переменные среды. Пока вы используете установочный пакет для его настройки. Однако в вашей установке Windows могут быть различия. Обратите внимание, что Oracle JRE поставляется в комплекте с JDK.
Если вы когда-нибудь обнаружите, что ваша конфигурация Java JDK использует неправильную версию компилятора или она работает волшебным образом, без явного определения (без применения заклинания), то у вас может быть символическая ссылка где-то в переменных среды, Так что вы можете проверить символическую ссылку.
Перейдите на Мой компьютер (Этот компьютер) -> щелкните правой кнопкой мыши -> выберите свойства -> Дополнительные параметры системы -> переменные среды -> в системных переменных нажмите кнопку "Создать" и введите JAVA_HOME в имя переменной и путь C:\Program Files\Java\jdk1.8.0_131, где jdk присутствует в значении переменной -> нажмите ОК.
закройте и снова откройте командную строку после установки JAVA_HOME. Иногда изменения не отражаются в cmd, открытом перед установкой JAVA_HOME.
Вы также можете установить JAVA_HOME через сам терминал:SET JAVA_HOME = "C: \ Program Files (x86) \ Java \ jdk1.8.0_131"
В Затмении: Window->Preferences->Java->Installed JREs
Используйте функцию поиска, чтобы убедиться, что ваша последняя версия Java указана в списке; затем убедитесь, что это тот, который проверен. Это должен быть JDK, а не JRE.
При добавлении вашего каталога Java в ваш PATH
переменная, вы можете поместить это прямо в начале. У меня была проблема, что положить каталог Java в конце PATH
не будет работать. После проверки я нашел java.exe
в моем Windows\System32
каталог, и он выглядит так, как будто первый выигрывает, когда в вашем файле несколько файлов с одинаковыми именами. PATH
...
Запустите Eclipse от имени администратора.
Это решило мою проблему. Я все еще копаюсь в логике этого.
Если вы не перезагрузили компьютер после установки jdk, просто перезагрузите компьютер.
Если вы хотите создать переносимую Java-версию и установить путь перед ее использованием, просто создайте командный файл, который я объяснил ниже.
если вы хотите запустить этот пакетный файл при запуске компьютера, просто поместите ярлык этого пакетного файла в папку автозагрузки. В папке запуска Windows 7 находится папка "C:\Users\user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup".
создайте командный файл следующим образом:
set Java_Home=C:\Program Files\Java\jdk1.8.0_11
set PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_11\bin
нота:java_home
а также path
переменные. Вы можете сделать любую переменную, как пожелаете. например set amir=good_boy
и вы можете увидеть амира %amir%
или вы можете увидеть java_home %java_home%
Вы можете поискать в папке Windows/System32 следующие файлы: - java.exe - javaw.exe - javaws.exe
Поскольку переменная path включает эти файлы, вы можете испытывать головную боль, пытаясь выяснить, почему java -version или javac -version продолжает указывать на старый JAVA_HOME: переименуйте эти файлы, например, удалите расширение с подчеркиванием. И тогда вам нужно будет только создать переменную JAVA_HOME, добавить ее в переменную пути (например, %JAVA_HOME%) и добавить частицу \bin. Таким образом, вам нужно только изменить переменную JAVA_HOME, указывающую на другой JRE или JDK, и иметь несколько установок java, просто установив JAVA_HOME.
Это также означает, что лучше установить Java вручную, без установщика, чтобы вы могли поиграть с ним.
После нескольких часов работы над большинством решений здесь, проблема была решена для меня, просто установив 32-битный JDK.