
我為碼頭添加了一個環境變量這個答案但我仍然收到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
我不熟悉該服務,但一般來說,這些東西透過分叉來工作,即透過創建另一個外殼。發生這種情況時,新的 shell 不會繼承本地設定的 shell 變量,除了對於那些為此明確挑選出來的人。這是透過命令完成的export
,因此您應該將命令修改為:
export JETTY_HOME=/opt/jetty
同樣,對於您希望子 shell 和子 shell 繼承的所有變數。
答案3
事實證明,我遇到的問題是我首先在 Windows 中建立了「/opt/jetty」文件作為文字文件,然後透過 FTP 將其傳輸到伺服器。這沒有被識別,因為它顯然是某種“dos 格式”,所以當我刪除該文件並使用以下命令重新製作它時:
nano /etc/default/jetty
並以這種方式貼上變數訊息,突然一切正常了!