我为 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:这是在 Ubuntu 14.04 上基于 Java 7 的 jetty 9。
答案2
我不熟悉该服务,但一般来说,这些事情是通过分叉(即创建另一个 shell)来实现的。当发生这种情况时,新 shell 不会继承本地设置的 shell 变量,除了对于那些明确为此而挑选出来的。这是通过命令完成的export
,因此您应该将命令修改为:
export JETTY_HOME=/opt/jetty
对于您希望子 shell 和子 shell 继承的所有变量也是如此。
答案3
事实证明,我遇到的问题是,我首先在 Windows 中将“/opt/jetty”文件创建为文本文件,然后通过 FTP 将其传输到服务器。由于它显然是某种“dos 格式”,因此无法识别该文件,因此当我删除该文件并使用以下命令重新创建它时:
nano /etc/default/jetty
并以此方式粘贴变量信息,一切突然就都起作用了!