Как установить java_home в Windows 7?

422

Я пошел в Переменные среды в 'Система' на панели управления и сделал две новые переменные, одну для пользовательских переменных и одну для системных переменных. Оба были названы 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

Как я могу решить эту проблему?

Дерек
источник
3
Вы закрыли cmd и снова открыли его? Кроме того, похоже, что вы указали на JRE, а не JDK. Вы установили JDK?
гнев
Я определенно установил JDK, и он находится в C: \ Sun \ SDK \ jdk \ bin, для которого я установил java_home.
Дерек
Я даже перезапустил ......... несколько раз с тех пор ........
Дерек
Тем не менее, кажется, что он ищет в C: \ Program Files \ Java \ jre6 \ lib \ c Можете ли вы повторить% JAVA_HOME% в командной строке и посмотреть, что он сообщает
гнев
3
Решение: Omit / bin
IceFire

Ответы:

673

Найти каталог установки JDK

Для начала вам нужно узнать путь установки Java Development Kit.

Откройте путь установки по умолчанию для JDK:

C:\Program Files\Java

Там должен быть подкаталог, как:

C:\Program Files\Java\jdk1.8.0_172

Примечание: нужно только указать путь к jdk без / bin в конце (как это предлагается во многих местах). например, C: \ Java \ jdk1.8.0_172 и НЕ C: \ Java \ jdk1.8.0_172 \ bin!


Установите переменную JAVA_HOME

Когда у вас есть путь установки JDK:

  1. Щелкните правой кнопкой мыши значок « Мой компьютер» на рабочем столе и выберите « Свойства» .
  2. Перейдите на вкладку « Дополнительно », затем нажмите кнопку « Переменные среды» .
  3. Под Системными переменными нажмите New.
  4. Введите имя переменной как JAVA_HOME .
  5. Введите значение переменной в качестве пути установки для Java Development Kit.
  6. Нажмите ОК .
  7. Нажмите Применить изменения .

Примечание: вам может потребоваться перезагрузить Windows

Полная статья находится здесь, в моем блоге: Настройка переменной JAVA_HOME в Windows .

Robs
источник
121
Спасибо. наконец, я понял, что в конце нужно только указать путь к jdk без / bin (как это было предложено во многих местах). например, C: \ Java \ jdk1.6.0_31 и НЕ C: \ Java \ jdk1.6.0_31 \ bin!
salocinx
24
Дай Бог, чтобы был установщик, который сделал этот шаг для вас :) Я просто переключился с версии Enterprise на версию Community, и я был убежден, что скачал не ту версию, потому что это была версия для Enterprise одним щелчком мыши: p
Джон Хамфрис - w00te
6
Иногда системные изменения не вступают в силу, пока вы не перезапустите Windows.
Энди
11
Более быстрый способ - нажать «Пуск», а затем начать вводить переменные среды
Casebash
4
/Java/jre*это не каталог JDK, это каталог среды выполнения Java. JDK находится в отдельном каталоге, если вы не хотите делать какой-то сумасшедший взлом
ericn
157

Для меня работало добавление %JAVA_HOME%\binпеременной среды Path с JAVA_HOMEпеременной среды, указывающей на jdkпапку.

fogedi
источник
126

Вы должны сначала установить 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; [Добавить значение с точкой с запятой]

проверьте здесь

Анкит джайн
источник
14
Должен ли JAVA_HOME содержать "\ bin"? Другие ответы здесь предполагают, что «bin» должен быть включен для PATH, но не для JAVA_HOME.
devuxer
72
JAVA_HOME не должен содержать \ bin.
Ларри Сильверман
5
[PLUS ONE] Красивые цветы!
GingerHead
Но на изображении вы вводите с \ bin.
NaveenDA
32

В cmd (временно для этого окна cmd):

set JAVA_HOME="C:\\....\java\jdk1.x.y_zz"

echo %JAVA_HOME%

set PATH=%PATH%;%JAVA_HOME%\bin

echo %PATH%
sgrillon
источник
2
Правда. Если вы используете его, setxон JAVA_HOMEвсе равно будет установлен после выключения компьютера. Тогда вам не нужно устанавливать его снова. Также binне нужно.
Тензин
Да, но если вы не хотите официально устанавливать Java, то, как сказал sgrillon, вы можете временно установить его для этого экземпляра. А еще лучше, создать пакетный файл , который можно запустить , чтобы открыть окно командной строки и набор JAVA_HOME, PATHи CLASSPATH, то вы можете иметь «портативную» окружающую среду Java.
Synetech
Это правда, но "" не нужны для установки адреса JAVA_HOME
Aboozar Rajabi
1
@Aboozar Rajabi, вам нужно "" если ... путь содержит пробел.
Сгрильон
19

Вам нужно установить его C:\Sun\SDK\jdk(при условии, что именно там установлен JDK - это не значение по умолчанию) - Не вставляйте \ bin C:\Sun\SDK\jdk\bin.

Если ваше приложение запускается только после того, как вы вошли в систему как текущий пользователь, поместите его в пользовательские переменные - если оно должно работать для всех пользователей в вашей системе, поместите его в системные переменные.

Вам также может понадобиться добавить %JAVA_HOME%\binк пути (также это зависит от того, запускаете ли вы его только от пользователя или от всех пользователей, включая System)

Ромен Хиппо
источник
17

http://javahowto.blogspot.com/2006/05/javahome-vs-javahome.html

Панель управления> Java, вкладка Java, нажмите кнопку Вид. В параметрах времени выполнения введите:

-Djava.home=YOUR_PATH_HERE

Или когда вы выполняете Java, вы можете добавить этот параметр командной строки к команде:

java -Djava.home=PATH SomeJavaApp
Ricket
источник
Кажется, эта панель управления применима только к коммерческой версии Java. Не для версии GPL.
Томас Веллер
7

Для тех, кто все еще озадачен этой проблемой (я перепробовал все вышеизложенные предложения) -

Если вы работаете в 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 (вытекающей из реестра).

Coldblackice
источник
1
Я нахожусь на 64-битной машине с Windows 7, и у меня есть оба: C: \ Program Files (x86) \ Java \ и C: \ Program Files \ Java \ Теперь мой вопрос: на какой из них должен указывать мой java_home?
voidMainReturn
Интересно; У меня есть только папка Java под папкой x86.
Б. Клэй Шеннон,
В C: \ Program Files (x86) \ Java \ jdk1.7.0_25 \ jre \ bin У меня нет клиента каталога, он существует только в C: \ Program Files (x86) \ Java \ jre7 \ bin. Что мне делать?
Павол Гавлик
В Windows 7 после поиска по ключевому слову «1.8.0_74» я нашел несколько реестров, использующих regedit, в HKEY_LOCAL_MACHINE / SOFTWARE / JavaSoft / Java Development Kit / 1.8.0_74 / или ../1.8.0_65 и во всех других установленных ранее ... После удаления одного за другим реестра снизу до моего последнего установленного java 1.8.0_112, теперь JavaK-профилировщик YourKit (profiler.exe) работает без ошибок: «Произошла ошибка при запуске C: \ Program Files \ Java \ jdk1.8.0_74 \ bin \ javaw.exe ".
Дэвид
7

Это официальное решение для настройки среды Java от www.java.com - здесь .

Существуют решения для Windows 7, Windows Vista, Windows XP, Linux / Solaris и других оболочек.


пример

Windows 7

  1. Выберите «Компьютер» в меню «Пуск».
  2. Выберите «Свойства системы» в контекстном меню.
  3. Нажмите Расширенные настройки системы -> вкладка Расширенные
  4. Нажмите «Переменные среды», в разделе «Системные переменные» найдите «PATH» и щелкните по нему.
  5. В окнах редактирования измените PATH, добавив местоположение класса к значению PATH. Если у вас нет элемента PATH, вы можете добавить новую переменную и добавить PATH в качестве имени и местоположение класса в качестве значения.
  6. Снова откройте окно командной строки и запустите свой код Java.
HATCHA
источник
1
Официальные инструкции бесполезны. Они дают только общие инструкции о том, как устанавливать переменные среды, а не указывают значение, которое необходимо установить. Они просто говорят, чтобы установить его в «местоположение класса», что является запутанным и бессмысленным.
Synetech
Эти инструкции не устанавливают JAVA_HOME, совершенно отдельную переменную из PATH, которая требуется для некоторых программ.
Жюль
6

Windows 7

  1. Перейдите в Панель управления \ Все элементы панели управления \ Учетные записи пользователей с помощью Explorer (не Internet Explorer!)

    или

    • нажмите на кнопку Пуск

      Начните

    • нажмите на свою фотографию

      clickOnPhoto

  2. Изменить мои переменные среды

    Изменить мои переменные среды

  3. Новый ...

    новый

    (если у вас недостаточно прав для его добавления в раздел «Системные переменные», добавьте его в раздел «Пользовательские переменные»)

  4. Добавьте JAVA_HOME в качестве имени переменной и расположение JDK в качестве значения переменной> OK

    редактировать системную переменную ок

Тестовое задание:

  • открыть новую консоль (cmd)
  • тип set JAVA_HOME
    • ожидаемый результат: JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
ROMANIA_engineer
источник
6

Нам нужно провести различие между двумя переменными среды, которые обсуждаются здесь взаимозаменяемо. Одним из них является переменная JAVA_HOME . Другой путь переменная . Любой процесс, который ссылается на переменную 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 использует неверную версию компилятора или она работает волшебным образом, без явного определения (без применения заклинания), то у вас может быть символическая ссылка где-то в переменных среды , Так что вы можете проверить символическую ссылку.

Samir
источник
5

Перейдите на Мой компьютер (Этот компьютер) -> щелкните правой кнопкой мыши -> выберите свойства -> Дополнительные параметры системы -> переменные среды -> в системных переменных нажмите кнопку « Создать » и введите 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"

Шрейя Шарма
источник
4

В Затмении: Window->Preferences->Java->Installed JREs

Используйте функцию поиска, чтобы убедиться, что ваша последняя версия Java указана в списке; затем убедитесь, что это тот, который проверен. Это должен быть JDK, а не JRE.

айсберг
источник
Эти инструкции не устанавливают JAVA_HOME, который не связан с затмением.
Жюль
4

При добавлении вашего Java-каталога в вашу PATHпеременную вы можете поместить его прямо в начало. У меня была проблема, что размещение каталога Java в конце PATHне будет работать. После проверки я нашел java.exeв своем Windows\System32каталоге, и похоже, что первый выигрывает, когда есть несколько файлов с одинаковым именем в вашем PATH...

user2414128
источник
Когда / если вы устанавливаете Java с помощью установщика, он заменит копии java.exeи javaw.exeв системных папках копиями из JRE / JDK, поэтому он все еще должен работать. Если вы устанавливаете его вручную (просто распаковываете архивы), то вам действительно нужно следить за тем, какая копия запускается.
Synetech
Эти инструкции не устанавливают JAVA_HOME, совершенно отдельную переменную из PATH, которая требуется для некоторых программ.
Жюль
3

Запустите Eclipse от имени администратора.

Это решило мою проблему. Я все еще копаюсь в логике этого.

muscailie
источник
1
Не могу сказать, что понимаю это точно, но, возможно, затмение на самом деле просто дает неправильное сообщение об ошибке здесь. Когда вы запускаете его как пользователь без прав администратора, он не может удалить файлы .jar или что-то еще, а затем ложно сообщает, что не нашел javac. В любом случае, это решение сработало и для меня.
Джесс
если вы используете Eclipse в Windows Server 2012 R2, как в моем случае, запуск Eclipse от имени администратора работает для меня. Не забудьте также установить java_home в папку программных файлов, а не в папку программ (86). Надеюсь, что этот поможет кому-то.
ombiro
2

если вы не перезагрузили компьютер после установки 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%

эмир
источник
0

После нескольких часов работы над большинством решений здесь, проблема была решена для меня, просто установив 32-битный JDK.

Вахид Гадири
источник
1
Это хорошо, если вы этого хотите, но некоторые люди предпочитают не устанавливать Java, а просто настроить «переносную» среду вручную, и в этом случае вам необходимо знать, какие переменные среды необходимо установить.
Synetech
0

Вы можете поискать в папке 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 вручную, без установщика, чтобы вы могли поиграть с ним.

Камило
источник