我已经在 Ubuntu 服务器上安装了 Sun Java 6,并按照以下说明在默认配置文件中设置了环境变量http://www.edugate.ie/workshop-guides/shibboleth-2-identity-provider-installation-linux-debian-or-ubuntu
然后我尝试运行 Java servlet 的安装程序 - 但当我以自己的身份运行它时,它无法在 /opt 中创建所需的目录。当我以 sudo 身份运行它时,我被告知 JAVA_HOME 不正确,它甚至没有启动安装程序 - 这难道不应该像我的普通用户一样来自 /etc/profile 吗?
答案1
不要通过 sudo 运行它,而是在 root shell 中运行它...
sudo su
然后检查您的环境变量并根据需要进行修复 echo $JAVA_HOME
然后运行安装程序或设置变量(如果需要设置)
答案2
尝试这个:
export JAVA_HOME=/path/to/java/home
例子:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
然后像下面这样运行你的小程序:
sudo env JAVA_HOME=$JAVA_HOME your_applet_or_script
例子:
sudo env JAVA_HOME=$JAVA_HOME /usr/bin/eclipse
希望这可以帮助。
答案3
非常一般地讲(并且只是看看非常(简要地查看您链接的那些说明)您需要以非 root 用户身份运行 tomcat。这样更安全也更方便(因为您不必以 root 身份执行所有操作)。
但这也意味着 tomcat 必须在更高的端口上运行(例如 8080 或类似端口)。为了在更常见的端口 80 上为客户端请求提供服务,您需要在 Tomcat 前面的端口 80 上运行 Apache(说明中也概述了这一点),Apache 通过 mod_jk 在另一个端口上连接到 tomcat(例如 8009 (http) 或 8443 (https) 或类似端口)。
现在,为了在 Tomcat 中安装 Java 应用程序,只需 chown/chmod 您的 tomcat 目录,以便您的“Web 用户”(可能是您自己的非 root 用户帐户)可以写入它。例如,
$ sudo mkdir /opt/tomcat
然后通常使用 chown (或者只是 chmod):
$ sudo chown my_user:my_group /opt/tomcat
现在,以非 root 帐户执行所有操作,无需 sudo。如果这是共享服务器,最好使用半受限的“web-admin”帐户,而不是使用您自己的登录名。