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

Как изменить JAVA_HOME на ant?

Я делаю java-работу на сервере классов, где у меня нет root. Всякий раз, когда я пытаюсь скомпилировать с помощью ant, он указывает на неправильный каталог (/usr/tomcat вместо /usr/tomcat/jre).

Одна из вещей, которые нам приказали делать при настройке наших учетных записей пользователей, заключалась в том, чтобы добавить export JAVA_HOME=/usr/tomcat/jre в файл .bashrc. Я не знаю, должно ли это заботиться о проблеме, но это не похоже.

Итак, как я могу изменить свойство JAVA_HOME для ant, но только когда я запускаю ant?

EDIT:  echo $JAVA_HOME указывает на /usr/tomcat/jre echo $JAVA_HOME\bin указывает на /usr/tomcat/jrebin

Проблема в том, что я обычно запускаю ant Я получаю эту ошибку:

Unable to locate tools.jar. Expected to find it in /usr/tomcat/lib/tools.jar
Buildfile: build.xml

compile:
    [javac] Compiling 1 source file to /home/ejm244/build/classes

BUILD FAILED
/home/ejm244/build.xml:9: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.

Perhaps JAVA_HOME does not point to the JDK

Total time: 0 seconds
4b9b3361

Ответ 1

Вы можете создать свой собственный script для запуска ant, например. с именем ant.sh like:

#!/bin/sh
JAVA_HOME=</path/to/jdk>; export JAVA_HOME
ant [email protected]

а затем запустите script.

$ chmod 755 ant.sh
$./ant.sh clean compile

или любой другой ant целевой, который вы хотите запустить

Ответ 2

JAVA_HOME должен указать, где установлен JDK, а не JRE.

Итак, если вы наберете ls $JAVA_HOME, что вы видите? если вы делаете ls $JAVA_HOME/bin/вы видите javac?

Если первое не работает, у вас нет JAVA_HOME, указывающего на правильный каталог. Если вторая не работает, вам нужно указать JAVA_HOME в JDK вместо JRE.

Ответ 3

Глядя на оболочку script для вызова ant, возможно, что значение для $JAVA_HOME, установленное для вашей оболочки в .bashrc, может быть переопределено в файлах /etc/ antconf, $HOME/.ant/ant.conf и $HOME/.antrc. Если вы выполните bash -x < путь к ant script > он будет генерировать отладочную информацию, которая должна помочь вам отслеживать, где $JAVA_HOME переопределяется.

Ответ 4

В моей машине Windows 7:

JAVA_HOME="C:\Program Files\Java\jdk1.6.0_18" 

не работает. Но установка:

JAVA_HOME=C:\Program Files\Java\jdk1.6.0_18

работал.

Ответ 5

Задайте env var: JAVACMD - полный путь к исполняемому файлу Java. Используйте это для вызова другой JVM, чем JAVA_HOME/bin/java (.exe).

Ссылка: http://ant.apache.org/manual/running.html

Ответ 6

Если переменная окружения JAVA_HOME установлена ​​правильно, ant может использовать настроенную JRE в каждом файле build.xml или любых файлах сборки.

Чтобы проверить, какая версия JRE используется ant, щелкните правой кнопкой мыши файл сборки → выберите сборку ant, в которой отображаются сведения о задачах, которые вы хотите выбрать и т.д., выберите JRE, который вы хотите использовать,

Желательно использовать настройки уровня проекта или только на уровне рабочей области.

Ответ 7

Есть два способа смены компилятора:

  • export JAVA_HOME=/path/to/jdk перед запуском Ant.
  • Установить <javac exectuable="/path/to/javac">

Другой вариант заключается в добавлении соответствующего tools.jar в путь к классам, но этот путь обычно выполняется, если Ant запускается из других инструментов, таких как Maven.

Подробнее об этих (или других) вариантах изменения компилятора Java в Ant см. в этой статье.

Ответ 8

JAVA_HOME должен указывать на дом JDK, если вы пытаетесь скомпилировать код. Проверьте, существует ли '/usr/tomcat/jre/bin/javac'. Я сомневаюсь, что это так.

Если у вас нет JDK, вы можете обойти его, получив библиотеку ECJ (eclipse compiler), переместив ее в '~/.ant/lib' и добавив системное свойство в командную строку, чтобы используйте этот компилятор. Подробнее см. руководство Ant.

http://ant.apache.org/

Ответ 9

При использовании Bash просто попробуйте следующее:

$ export JAVA_HOME=/usr/tomcat/jre

Ответ 10

Задайте JRE в проекте (свойства проекта → Java Build Path- > Libraries, обычно последняя запись) или глобальный по умолчанию в настройках (Java- > Installed JREs) для JDK, а не JRE.

Ответ 11

Вам нужно будет изменить путь JAVA_HOME к каталогу Java SDK вместо каталога Java RE. В Windows это можно сделать с помощью команды set в командной строке.

например.

установить JAVA_HOME = "C:\Program Files\Java\jdk1.6.0_14"

Ответ 12

попробуйте следующее:

/usr/sbin/update-alternatives --config java

Ответ 13

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

[email protected]:~# JAVA_HOME=/path/to/jdk ant targets

Ответ 14

java_home всегда указывает на jdk, компилятор, который дал вам классы, и jre - это то, что ваш браузер или что-то будет скомпилированными классами, поэтому он должен иметь соответствие между jdk и jre в версии.