Вопрос JAVA_HOME не определен правильно


Я установил java jdk hotspot 1.7. Когда я печатаю java -version Я осознаю:

java version "1.7.0" 
Java(TM) SE Runtime Environment (build 1.7.0-b147)

Это верно.

И я попытался установить maven и добавил /etc/environment файл:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0
M2_HOME=/usr/local/apache-maven/apache-maven-3.0.4
MAVEN_HOME=/usr/local/apache-maven/apache-maven-3.0.4
M2=/usr/local/apache-maven/apache-maven-3.0.4/bin

Теперь, когда я печатаю mvn, я получаю:

Error: JAVA_HOME is not defined correctly.   We cannot execute
”/usr/lib/jvm/jdk1.7.0”/bin/java

Однако я не помещаю «знак для JAV_HOME var в файл окружения.

Он пытается убежать от

”/usr/lib/jvm/jdk1.7.0”/bin/java

путь, На самом деле это должно быть

/usr/lib/jvm/jdk1.7.0/bin/java

Когда я командую

$JAVA_HOME

Я осознаю:

bash: ”/usr/lib/jvm/jdk1.7.0”: No such file or directory

Я уверен, что путь (/usr/lib/jvm/jdk1.7.0) верно.


14
2018-06-28 16:58


происхождения


Можете ли вы сделать ls -al /usr/lib/jvm и подтвердите, что 'jdk1.7.0' - это формат имени каталога? При использовании Oracle они, как правило, используют странные имена папок - Thomas Ward♦
ls /usr/lib/jvm/java-7 а также ls "/usr/lib/jvm/java-7"/bin урожай, и должен дать тот же результат для меня (что не пусто). Последняя часть, java-7, является результатом ручной модификации - она ​​может и будет немного отличаться для вас. Убедитесь, что такая папка существует (jdk1.7.0). - user unknown
я получил total 44 drwxr-xr-x 3 root root 4096 Jun 28 01:57 . drwxr-xr-x 184 root root 36864 Jun 28 01:34 .. drwxr-xr-x 10 root root 4096 Jun 27 23:30 jdk1.7.0  после запуска ls -al /usr/lib/jvm  команда - Kamoliddin
Обратите внимание: чтобы увидеть переменную в консоли, вы должны ввести: echo $VARNAME, Если вы просто сделаете $VARNAME то он выполнит то, что находится в этой переменной. - Alexis Wilke


ответы:


JAVA_HOME должно быть указано имя каталога, содержит  bin каталог что содержит исполняемые файлы Java (в частности, java сам).

Предполагая, что у вас есть /usr/lib/jvm/jdk1.7.0 , он, вероятно, содержит jre подкаталог, содержащий bin каталог, содержащий java и связанные с ним исполняемые файлы.

Поэтому вы, вероятно, должны JAVA_HOME в /usr/lib/jvm/jdk1.7.0/jre скорее, чем /usr/lib/jvm/jdk1.7.0,


14
2018-06-29 12:17



Установка JDK, а не только JRE, обычно приводит к каталогу JDK, содержащему каталог bin, а также JRE-dir, который сам содержит каталог bin. Но JAVA_HOME всегда был установлен в родительский каталог, а не на jre реж. - user unknown
Интересно, мне нужно установить его в jdk нет? Я собираюсь написать код в java, компилировать, развернуть и т. Д. - Kamoliddin
@ Kamoliddin Если Maven использует $JAVA_HOME знать, где javac и другие двоичные файлы разработки, тогда да, вам нужно будет установить его на jdk dir, содержащий bin dir, который содержит эти двоичные файлы. - Eliah Kagan
Спасибо, я не знаю, он работал после перезагрузки, я думаю, что мне не нужно перезапускать изменения, которые нужно применить. Я ничего не изменил. Это сработало. - Kamoliddin
Не знаю, почему он вообще использует jdk1.7.0. /usr/lib/jvm/java должно быть достаточным для обоих java а также javac, Альтернативы позаботятся об этом - Brian