【发布时间】:2011-07-15 18:38:44
【问题描述】:
我为我的 glassfishv3 安装创建了一个没有交互式 shell 的系统用户,因此当通过 asadmin 启动 glassfish 时,没有在该用户上设置环境变量。
我尝试在我的初始化脚本中使用以下命令在环境中进行复制:
jhv=$(grep JAVA_HOME /etc/environment)
$jhv
export JAVA_HOME
sudo -u glassfish -E $glassfishpath/asadmin start-domain domain1
在 asadmin 内部,我回显 $JAVA_HOME,它会正确打印 JAVA_HOME。
glassfish 启动后,我使用一种打印环境键值对的方法启动 Web 服务。 JAVA_HOME 不在其中。这会导致 glassfish 执行的任何需要 JAVA_HOME 的脚本出现问题。
那么如何在系统用户/glassfish 环境中设置 JAVA_HOME,以便在启动 java 容器后仍然存在?
【问题讨论】:
-
我对GF不熟悉。 “启动 Web 服务”意味着什么?另外,你是如何打印键值对的?
-
@Ryan Stewart - glassfish 作为一个 java web 容器可以托管 java web 服务。容器已知的应用程序(Web 服务)是在客户端调用它们时创建或初始化的。至于您的其他问题:Java 能够通过使用返回环境条目映射的 System.getenv(); 来获取环境变量。通过遍历条目,您可以将键值对附加到字符串,然后从服务返回字符串作为响应。
-
对不起,我应该注意到我是一名 Java 开发人员,所以我知道这个领域。我只是没用过GF。我主要使用 Tomcat。但是,除非 GF 与我使用的其他容器有很大不同,否则它实际上不会为 Web 服务生成单独的 OS 进程,对吧?您只是在部署 WAR 吗?
-
您在 Web 服务中使用什么代码来获取 JAVA_HOME?
标签: java ubuntu glassfish environment-variables glassfish-3