Переменная среды для JETTY_HOME не работает

Переменная среды для JETTY_HOME не работает

Я добавил переменную окружения для Jetty, следуяэтот ответно я все еще получаю JETTY_HOME not setошибку:

root@b:/opt# echo $JETTY_HOME
/opt/jetty
root@b:/opt# service jetty start
** ERROR: JETTY_HOME not set, you need to set it or install in a standard location
root@b:/opt# 

Вот как /etc/environmentвыглядит мой:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games":
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java":
JETTY_HOME=/opt/jetty

Что я делаю не так?

решение1

Это довольно раздражающая ошибка, и помощи по ней мало. Я подумал, что опубликую свое решение здесь для тех, кто ищет решение той же проблемы.

В любом случае, правильным решением будет установить JETTY_HOMEего /etc/default/jettyследующим образом:

JETTY_HOME=/opt/jetty

Надеюсь, это кому-то поможет.

PS: Это jetty 9 на Ubuntu 14.04 поверх Java 7.

решение2

Я не знаком с сервисом, но в целом эти вещи работают путем разветвления, т.е. путем создания другой оболочки. Когда это происходит, новая оболочка не наследует локально заданные переменные оболочки,кромедля тех, которые явно выделены для этого. Это делается с помощью команды export, поэтому вам следует изменить вашу команду на:

    export JETTY_HOME=/opt/jetty

и то же самое для всех переменных, которые вы хотите, чтобы ваши подоболочки и дочерние элементы наследовали.

решение3

Как оказалось, проблема была в том, что я сначала создал файл "/opt/jetty" в Windows как текстовый файл, а затем отправил его по FTP на сервер. Он не распознавался, поскольку, по-видимому, был каким-то "форматом dos", поэтому, когда я удалил файл и переделал его с помощью:

nano /etc/default/jetty

и вставил переменную информацию таким образом, и вдруг все заработало!

Связанный контент