Как изменить JAVA.HOME на Eclipse/ANT

Я пытаюсь подписать файл JAR с помощью сценария ANT. Я знаю, что это должно быть указано на каталог JDK для jarsigner.exe чтобы запустить, но когда я повторяю java.home, он возвращает каталог JRE.

Это не проблема для javac, потому что я могу установить путь к исполняемому файлу. Но это не существует для Signjar.

Как мне изменить путь к java.home? Когда я щелкаю правой кнопкой мыши на MyComputer и перехожу к:

Свойства> Дополнительно> Переменные среды

Переменная "PATH" правильно указывает на JDK (C:\program files\java\jdk\bin).

Обновление: теперь файл подписывается правильно после изменения переменной PATH, предложенной ниже.

10 ответов

В Eclipse переменная Ant java.home не основана на переменной среды Windows JAVA_HOME. Вместо этого он устанавливается в домашний каталог JRE проекта.

Чтобы изменить JRE по умолчанию (например, изменить его на JDK), вы можете перейти в Windows-> Настройки... и выбрать Java-> Установленные JRE.

Чтобы изменить только JRE отдельного проекта, вы можете перейти в Project->Properties и выбрать Java Build Path и выбрать вкладку Libraries. Найдите Системную библиотеку JRE и щелкните по ней, затем выберите " Правка" и выберите нужную JRE (или JDK).

Если это не сработает, то при запуске файла сборки вы можете выбрать " Запуск от имени" -> "Сборка муравья"... и перейдите на вкладку JRE, выберите отдельную JRE и укажите нужную JRE.

Для меня ant явно отказывается прислушиваться к любой конфигурации для стандартного затмения, проекта JDK и предложения "Ant Home Entries" просто не имеет тяги - там не было ничего, ссылающегося на JDK.

Тем не менее, это работает:

Menu "Run" -> "External Tools" -> "External Tools Configuration".
  Goto the node "Ant build", choose the ant buildfile in question.
     Choose tab "JRE".
        Select e.g. "Run in same JRE as workspace", or whatever you want.

Под Windows вам нужно следовать:

Пуск -> Панель управления -> Система -> Дополнительно -> Переменные среды.

... и вам нужно установить JAVA_HOME (который отличается от упомянутой вами переменной PATH) для ссылки на домашний каталог JDK, а не на подкаталог bin; например, "C:\program files\java\jdk".

Проще говоря, чтобы принудительно установить версию JAVA для Ant в Eclipse:

Используйте опцию RunAs в файле Ant, затем выберите " Конфигурация внешнего инструмента" на вкладке JRE, чтобы определить версию JDK/JRE, которую вы хотите использовать.

Также не забудьте установить ваш JAVA_HOME переменная окружения. На самом деле, я обычно устанавливаю JAVA_HOME, а затем добавить строку "%JAVA_HOME%\bin"к системе PATH переменная среды, так что если Java когда-либо будет обновлен или изменен, только JAVA_HOME переменная должна быть изменена.

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

Помимо проверки того, что исполняемые файлы находятся на вашем пути, вы также должны убедиться, что Ant может найти tools.jar в вашем JDK. Самый простой способ это исправить - добавить tools.jar к муравейному пути:

Добавление tools.jar в Ant classpath

Если вы используете Eclipse, попробуйте следующее:

  • Щелкните правой кнопкой мыши по файлу сборки ant, затем выберите "Свойства".
  • Нажмите "Run/Debug Settings", затем нажмите на файл конфигурации запуска. Вы должны быть в состоянии отредактировать это тогда.
  • После того, как вы нажмете "Изменить", вы увидите новое окно с вкладкой "Свойства", которая покажет вам список свойств сборки Ant. В списке есть свойство "java.home". Убедитесь, что это относится к правильному пути.

Потратил несколько часов на решение этой проблемы сегодня утром. Я, вероятно, буду наименее техническим человеком на этих форумах. Как и запрашивающая сторона, я выносил каждое напоминание, чтобы установить%JAVA_HOME%, кусая язык каждый раз, когда я видел этот не светящийся совет. Наконец, я подумал, были ли версии JRE на моем ноутбуке выше, чем мой JDK (поскольку JRE регулярно обновляются автоматически), и я установил последнюю версию JDK. Разница была незначительной, исходящей от нескольких недель разных версий. Я начал с этой ошибки на jdk v 1.0865. JRE был 1.0866. После установки у меня был jdk v1.0874 и эквивалентный JRE. В этот момент я дал указание JRE по Eclipse сосредоточиться на моем JDK, и все было хорошо. Мой println из java.home даже отражал правильную JRE.

Столько отзывов повторяли неправильные ответы. Я настоятельно хотел бы, чтобы люди читали отзывы других, чтобы избежать ненужной избыточности. Береги себя, СГ

Установить переменные среды

Это та часть, которую я всегда забываю. Поскольку вы устанавливаете Ant вручную, вам также нужно иметь дело с настройкой переменных среды вручную.

Для Windows XP: чтобы установить переменные среды в Windows XP, щелкните правой кнопкой мыши на "Мой компьютер" и выберите "Свойства". Затем перейдите на вкладку "Дополнительно" и нажмите кнопку "Переменные среды" внизу.

Для Windows 7: чтобы установить переменные среды в Windows 7, щелкните правой кнопкой мыши Компьютер и выберите Свойства. Нажмите на Дополнительные параметры системы и нажмите кнопку Переменные среды внизу.

Диалог для Windows XP и Windows 7 одинаков. Убедитесь, что вы работаете только с системными переменными, а не с пользовательскими.

Единственная переменная окружения, которая вам абсолютно необходима, - это JAVA_HOME, которая сообщает Ant местоположение вашего JRE. Если вы установили JDK, это скорее всего c:\Program Files\Java\jdk1.x.x\jre в Windows XP и c:\Program Files(x86)\Java\jdk1.x.x\jre в Windows 7. Вы заметите, что в обоих путях есть пробелы, что вызывает проблемы. Вам нужно использовать искаженное имя [3] вместо полного имени. Так что для Windows XP используйте C:\Progra~1\Java\jdk1.x.x\jre а для Windows 7 используйте C:\Progra~2\Java\jdk1.6.0_26\jre если он установлен в папке Program Files(x86) (в противном случае используйте то же, что и в Windows XP).

Одного этого достаточно, чтобы заставить Ant работать, но для удобства полезно добавить двоичный путь Ant в переменную PATH. Эта переменная представляет собой список каталогов, разделенных точкой с запятой, для поиска исполняемых файлов. Чтобы иметь возможность запускать ant в любом каталоге, Windows должна знать и местоположение для двоичного файла ant, и для двоичного файла java. Вам нужно будет добавить оба из них в конец переменной PATH. Для Windows XP вы, вероятно, добавите что-то вроде этого:

;c:\java\ant\bin;C:\Progra~1\Java\jdk1.x.x\jre\bin

Для Windows 7 это будет выглядеть примерно так:

;c:\java\ant\bin;C:\Progra~2\Java\jdk1.x.x\jre\bin

Готово

После того как вы сделали это и применили изменения, вам нужно будет открыть новую командную строку, чтобы увидеть, правильно ли установлены переменные. Вы должны иметь возможность просто запустить ant и увидеть что-то вроде этого:

Buildfile: build.xml does not exist!
Build failed

Перейти к переменной среды и добавить

JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_37

до пути JDK (исключить папку bin)
Теперь установите JAVA_HOME в путь как PATH=%JAVA_HOME%\bin;
Это установит путь Java ко всем приложениям, которые используют Java.

Для использования ANT,

ANT_HOME=C:\Program Files (x86)\apache-ant-1.8.2\bin;

и включите ANT_HOME в PATH, чтобы путь был похож PATH=%JAVA_HOME%\bin;%ANT_HOME%;

Другие вопросы по тегам