Как изменить 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
Ответы
Ответ 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 в версии.