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: これは Java 7 上の Ubuntu 14.04 上の jetty 9 です。

答え2

私はそのサービスに詳しくありませんが、一般的にはこれらの機能はフォーク、つまり別のシェルを作成することで動作します。これが発生すると、新しいシェルはローカルに設定されたシェル変数を継承しません。を除外する明示的にこれが指定されているものについては、 コマンドを使用して実行します。exportそのため、コマンドを次のように変更する必要があります。

    export JETTY_HOME=/opt/jetty

サブシェルや娘に継承させたいすべての変数についても同様です。

答え3

結局、私が抱えていた問題は、最初に Windows で「/opt/jetty」ファイルをテキスト ファイルとして作成し、それを FTP でサーバーに転送したことにありました。どうやらこれは何らかの「DOS 形式」だったため認識されず、ファイルを削除して次のコードを使用して再作成しました。

nano /etc/default/jetty

そのように変数情報を貼り付けると、突然すべてが機能するようになりました。

関連情報