JAVA_HOME неправильно визначений


14

Я встановив гарячу точку java jdk 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

Однак я не ставлю позначку "var для 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) правильний.


Чи можете ви 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).
користувач невідомий

Я отримав 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 команди
Камоліддін

Зверніть увагу , що , щоб побачити змінні у вашій консолі, як очікується, типу: echo $VARNAME. Якщо ви просто зробите $VARNAMEце, він виконає те, що в цій змінній.
Алексіс Вілке

Відповіді:


15

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 .


Встановлення JDK не просто JRE зазвичай призводить до каталогу JDK, що містить dir dir, а також JRE-dir, який сам містив bir dir. Але JAVA_HOMEзавжди був налаштований на батьківського dir, не на jredir.
користувач невідомий

Цікаво, мені потрібно встановити його на jdk ні? Я збираюся писати код у Java, компілювати, розгортати тощо.
Камоліддін

@Kamoliddin Якщо Maven використовує, $JAVA_HOMEщоб знати, де javacта інші бінарні файли розвитку, то так, вам потрібно встановити його на jdkdir, що містить bindir, який містить ці бінарні файли.
Елія Каган

Дякую, я не знаю, це спрацювало після перезавантаження, я думаю, що мені не потрібно перезавантажуватись, щоб зміни були застосовані. Я нічого не змінив. Це спрацювало.
Камоліддін

Не впевнений, чому він взагалі використовує jdk1.7.0 .. /usr/lib/jvm/javaмає вистачити і для, javaі для javac. Альтернативи опікуються цим
Брайан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.