Как решить проблему java: не найдено?

Вопрос или проблема

Я выполняю команду sudo cassandra -R, чтобы запустить cassandra, и получаю следующую ошибку.

getopt: недопустимый параметр -- 'R'
/usr/sbin/cassandra: 158: exec: java: не найден

Она указывает на следующую строку в скрипте cassandra.

else
        exec $NUMACTL "$JAVA" $JVM_OPTS $cassandra_parms -cp "$CLASSPATH"

Это связано с тем, что переменная окружения JAVA не установлена?
Если да, то как установить переменную?

Вывод команды echo $JAVA_HOME пуст. Вот вывод команды java -version:

java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

Простое решение – установить переменную JAVA_HOME, чтобы указать на вашу установку java. Скрипт cassandra обычно автоматически определяет местоположение вашей java в PATH, но если это не происходит, вы можете помочь, установив JAVA_HOME явно:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/

Примечание: вы должны установить JAVA_HOME, а не JAVA. Переменная JAVA используется внутренне скриптами запуска cassandra, но вы не должны ее устанавливать. JAVA устанавливается этим фрагментом кода в cassandra.in.sh:

# Используйте JAVA_HOME, если установлено, в противном случае ищите java в PATH
if [ -n "$JAVA_HOME" ]; then
    # Почему у нас не может быть хороших вещей: Solaris объединяет x86 и x86_64
    # установки в одно дерево, используя неконвенциональный путь для
    # 64-битной JVM. Поскольку мы предпочитаем 64 бита, сначала ищем альтернативный путь,
    # (см. https://issues.apache.org/jira/browse/CASSANDRA-4638).
    for java in "$JAVA_HOME"/bin/amd64/java "$JAVA_HOME"/bin/java; do
        if [ -x "$java" ]; then
            JAVA="$java"
            break
        fi
    done
else
    JAVA=`command -v java 2> /dev/null`
fi

Ответ или решение

Ошибка "java: not found" при запуске Cassandra указывает на то, что система не может найти исполняемый файл Java. Эта проблема может быть связана с тем, что переменная окружения JAVA_HOME не настроена, или Java не установлена правильно. В этой статье мы подробно рассмотрим, как разрешить эту проблему и подготовить вашу среду для запуска Cassandra.

1. Проверка и установка Java

Сначала убедитесь, что Java установлена на вашем сервере. Судя по вашему выводу команды java -version, Java присутствует, и версия соответствует требованиям (Java 1.8). Однако проблема может заключаться в том, что Java не находится в переменной среды PATH. Проверьте, доступна ли команда java:

which java

Если команда ничего не возвращает, это значит, что исполняемый файл Java не находится в переменной PATH.

2. Установка JAVA_HOME

Apache Cassandra использует переменную окружения JAVA_HOME для нахождения пути к Java. Поскольку ваш вывод команды echo $JAVA_HOME пуст, вам нужно настроить эту переменную.

Шаги для установки JAVA_HOME:

  1. Определите, где установлен Java. Обычно это может быть /usr/lib/jvm/java-1.8.0-openjdk-amd64/. Чтобы подтвердить это, выполните:
ls /usr/lib/jvm/
  1. Установите переменную JAVA_HOME, добавив следующую строку в ваш файл конфигурации оболочки (например, ~/.bashrc или ~/.bash_profile):
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/
  1. После того как вы добавите эту строку, обновите текущую сессию оболочки, выполняя команду:
source ~/.bashrc

3. Проверка конфигурации

Проверьте, правильно ли установлена переменная JAVA_HOME, введя:

echo $JAVA_HOME

Этот вывод должен показать путь к вашей установке Java.

4. Примечания по запуску Cassandra

После установки JAVA_HOME, попробуйте снова запустить Cassandra:

sudo cassandra

Если ошибка все еще сохраняется, убедитесь, что Java действительно доступен через переменную PATH. Вы можете проверить это следующей командой:

java -version

5. Заключение

Установка правильной переменной окружения JAVA_HOME часто решает вопрос "java: not found". Убедитесь, что вы правильно указали путь к Java в вашем окружении. Правильная настройка Java – это ключ к успешному запуску Apache Cassandra и другим Java-приложениям. Если вы следовали всем шагам и ошибка не исчезла, проверьте наличие конфликтующих установок Java или рассмотрите возможность переустановки Java.

Оцените материал
Добавить комментарий

Капча загружается...