Bash error: Не удается найти /Library/...../setclasspath.sh, но там

Я пытаюсь настроить tomcat-сервер, и я использую инструкции с веб-сайта, который дал мне указание

      # Execute the Tomcat startup script
      ./startup.sh 

но когда я вхожу в команду. /startup.sh, я получаю сообщение об ошибке

      Cannot find /Library/Tomcat/Home/bin/setclasspath.sh

но setclasspath.sh есть (см. снимок экрана ниже):

enter image description here

Что я делаю неправильно?


теперь я не могу подключиться к домашней странице (см. снимок экрана ниже):

enter image description here

вот информация о пути: enter image description here

Ответы

Ответ 1

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

$ unset CATALINA_HOME

и после этого он решил мою проблему. Эта команда отключит переменную окружения CATALINA_HOME.

Ответ 2

просто запустите: $ unset CATALINA_HOME в терминале, и он снова работает.

Ответ 3

Из-за разрешения вы можете запустить это с помощью root $ sudo pathtotomcat/bin/./startup.sh

Ответ 4

Пожалуйста, RESET CATALINA_HOME, чтобы указать правильный путь. Это должно решить проблему. например; в настоящее время это может быть в "/usr/share/tomcat6/", но вам нужно проверить и указать до нужного каталога, например "/usr/share/tomcat6/apache-tomcat-6.0.37/"

Ответ 5

У меня тоже была аналогичная проблема, и я могу ее решить, просто изменив разрешение файла tomcat. Заставьте его читать и писать для всех. Команда sh startup.sh отлично работает с Tomcat/7.0.34

Я получил это решение здесь

Чтобы все скрипты выполнялись:

sudo chmod +x /Library/Tomcat/bin/*.sh

Надеюсь, он также решит вашу проблему.

Ответ 6

Ответ ali хороший, но по какой-то причине мне также нужно было открыть .bash_profile и прокомментировать CATALINA_HOME

Ответ 7

Это происходит почти наверняка из-за неправильного значения переменной среды CATALINA_HOME в текущей оболочке. В моем случае, например, у меня была устаревшая установка tomcat, которую я удалил и установил другую версию, но забыл изменить env var, установленный в .bash_profile. Поэтому любой из предложенных методов, которые удаляют var, будет работать. Если у вас CATALINA_HOME установлен в .bash_profile, удалите его. unset CATALINA_HOME будет работать, но если он будет в профиле, он снова будет установлен, когда вы откроете новую оболочку.

Ответ 8

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

Где-то в вашей операционной системе файл устанавливает переменные среды для вашей операционной системы, одно из этих имен переменных - CATALINA_HOME, указывающее на адрес или путь. когда вы пытаетесь запустить ./startup.sh или catalina.sh run, для этой команды требуется CATALINA_HOME, установленная вашей операционной системой, и переопределит конфигурацию tomcat по умолчанию CATALINA_HOME. (Возможно, вы использовали tomcat и задали эту переменную раньше, и теперь вы ее забудете)

Итак, главное решение - отредактировать этот специальный файл, и это действительно зависит от операционной системы. В моем случае Fedora два файла являются кандидатами, один из которых - ~/.bashrc, а другой - /etc/profile. После их редактирования вам нужно source их или log out, а затем log in (Вкл OS X Я думаю, что он должен быть в файле /Users/username/.bash_profile).

конечно команда unset CATALINA_HOME работает, но после закрытия и открытия нового терминала снова вам нужно использовать эту команду из-за обновления.