2016-08-26 3 views
-1

Я пытаюсь запустить искровое приложение в автономном режиме кластера, когда я обращаюсь к некоторым удаленным машинам и использую команду «java -version», я получаю информацию (java-версия ..), но на других я получаю сообщение об ошибкеjava command не найден на удаленных машинах linux

-bash: команда не найдена

так я думал, что, может быть Java не установлен на этих узлах, поэтому я попытался с:

sudo apt -get install openjdk-8-jdk 

, но я получаю ту же ошибку, поэтому хочу знать, как я могу исправить это, и у меня есть вопросы:

-Можно ли устанавливать java на всех удаленных компьютерах? или если я устанавливаю его только на главный узел, этого достаточно?

-если я должен установить его на каждом узле, как я могу исправить проблему, которую я объяснил раньше? (не могу использовать команду установки ...)

В моем коде я использовал выражения, которые поддерживаются только с помощью jdk 8, но некоторые узлы (в которых я могу получить «java-версию»), он установлен jdk7, поэтому мне нужно переустановить jdk8?

+0

Я не верю, что вы получаете «ту же ошибку» при использовании 'sudo apt-get' (обязательно о' apt-get' vs 'apt get'). Если да, убедитесь, что вы используете дистрибутив на основе .deb ('uname -a' должен показывать ubuntu или debian). – Felix

+0

-bash: sudo: команда не найдена, вот что получается как ошибка – hammad

+0

@ Mickaël B, нет, это не потому, что я ее уже проверил – hammad

ответ

3

Ошибка «command not found» означает, что определенная команда, которую вы пытаетесь вызвать, не найден ни в одной из каталогов, перечисленных в системной переменной $ PATH.

Есть два способа исправить это:

1) Укажите полный путь при запуске исполняемого файла:

/opt/jdk-12345/bin/java -version 

2) добавить тот же самый путь к началу PATH (изменение будет применяется только к текущей сессии):

export PATH=/opt/jdk-12345/bin:$PATH 
java -version 

чтобы исправить это постоянно, добавьте эту строку (export PATH=/opt/jdk-12345/bin:$PATH) в ~/.bashrc (если BASH по умолчанию оболочка для этого пользователя) или ~/.prof ile

Также, поскольку это Unix Java, не забудьте установить переменные LD_LIBRARY_PATH и CLASSPATH, если вы используете некоторые серверные приложения. Обычно это делается в сценариях запуска приложений, не нужно идти глобально.

Пожалуйста, проверьте, какая операционная система сервера вы используете (uname -a или /bin/uname -a), потому что разные системы Unix имеют разные менеджеры пакетов: APT-GET для Ubuntu/Debian, оборотов в минуту для RedHat, энтропией для Сабайон/Gentoo, и т.д ...

+0

спасибо @ the.Legend – hammad

+0

, что ссылка полезная? http://www.tecmint.com/install-java-jdk-jre-in-linux/ – hammad

+1

Это неправильно, вы должны вставить двоичный файл в начале '$ PATH', а не в конец, потому что' bash 'будет использовать первую найденную ссылку. Это особенно важно в случае, когда jdk7 уже установлен и на пути, и OP хочет добавить jdk8. См. [Этот идеологический фрагмент] (https://ideone.com/qIK42y); он не может выполнить программу, вероятно, по причинам, характерным для ideone, но вы можете видеть, что из 'stderr' он пытается выполнить первый, а не последний. – Aaron

Смежные вопросы