Как установить java_home в Windows 7? - PullRequest
409 голосов
/ 12 апреля 2010

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

5 голосов
/ 15 января 2016

Windows 7

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

    или

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

      start

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

      clickOnPhoto

  2. Изменить мои переменные окружения

    Change my environment variables

  3. Новый ...

    new

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

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

    edit system variable ok

Тест:

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

Нам нужно провести различие между двумя переменными среды, которые обсуждаются здесь взаимозаменяемо. Одним из них является переменная 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 и Path

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

4 голосов
/ 08 мая 2011

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

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

4 голосов
/ 23 мая 2013

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

есть несколько файлов с одинаковым именем.
3 голосов
/ 12 августа 2010

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

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

2 голосов
/ 07 марта 2016

, если вы не перезагрузили компьютер после установки jdk, просто перезагрузите компьютер.

если вы хотите сделать переносной java и указать путь перед использованием 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 голосов
/ 27 февраля 2019

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

0 голосов
/ 16 июля 2013

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

...