Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA环境变量(tomcat)_Java_Linux_Tomcat_Tomcat8_Environment - Fatal编程技术网

JAVA环境变量(tomcat)

JAVA环境变量(tomcat),java,linux,tomcat,tomcat8,environment,Java,Linux,Tomcat,Tomcat8,Environment,我的/etc/environment如下 APP=“/opt/apps/” PATH=“/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games” JAVA_HOME=“/usr/lib/jvm/JAVA-8-oracle” 我已经在我的机器上获取了source/etc/environment。在终端上键入echo$APP时,我能够获得输出 但是当我从java文件中调用它时

我的
/etc/environment
如下

APP=“/opt/apps/”
PATH=“/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games”
JAVA_HOME=“/usr/lib/jvm/JAVA-8-oracle”

我已经在我的机器上获取了
source/etc/environment
。在终端上键入
echo$APP
时,我能够获得输出

但是当我从java文件中调用它时

LOGGER.error(“APP:”+System.getenv(“APP”);
LOGGER.error(“路径:”+System.getenv(“路径”);
LOGGER.error(“JAVA_HOME:”+System.getenv(“JAVA_HOME”);

我只得到PATH的输出,而没有得到其他两个env变量

输出

2017-12-18 07:22:10错误JRWebService:127-应用程序:空
2017-12-18 07:22:10错误JRWebService:128-路径:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin
2017-12-18 07:22:10错误JRWebService:129-JAVA_HOME:null


请纠正我做错了什么

听起来好像应用程序和JAVA_HOME没有导出。对于unix shell,set(变量在当前shell中可见)和export(变量对所有子进程可见)之间存在差异。如果您只是键入“X=Y”,则会设置X,但不会导出。路径大部分已经导出到某个地方

您可以通过在控制台中运行“
export | grep APP
”来测试这一点。如果应用程序没有显示,java或您运行的任何其他程序都不会看到该变量,即使
echo$APP
工作正常


如果是这种情况,只需将“导出应用程序”添加到您的.profile或启动java应用程序的脚本中(或要进行测试,只需在启动java之前在控制台上键入即可)。

听起来好像应用程序和java\u HOME没有导出。对于unix shell,set(变量在当前shell中可见)和export(变量对所有子进程可见)之间存在差异。如果您只是键入“X=Y”,则会设置X,但不会导出。路径大部分已经导出到某个地方

您可以通过在控制台中运行“
export | grep APP
”来测试这一点。如果应用程序没有显示,java或您运行的任何其他程序都不会看到该变量,即使
echo$APP
工作正常


如果是这种情况,只需将“导出应用程序”添加到您的.profile或启动java应用程序的脚本中(或要进行测试,只需在启动java之前在控制台上键入即可)。

您不应该为/etc/环境提供源代码。这不是将变量引入流程的方法。/etc/environment文件不是脚本,因此没有必要对其进行源代码设置。它只是一个设置列表,有点像属性文件

有关更多详细信息,请参阅


当您登录时,它将被读取。因此,要使变量可见,您应该注销并重新登录。

您不应该为/etc/环境提供源代码。这不是将变量引入流程的方法。/etc/environment文件不是脚本,因此没有必要对其进行源代码设置。它只是一个设置列表,有点像属性文件

有关更多详细信息,请参阅



当您登录时,它将被读取。因此,要使变量可见,您应该注销并重新登录。

检查这个System.getProperty(“JAVA_HOME”);当您从中尝试
EnvMap
示例时,您会得到什么?即使路径变量值也不匹配。我认为如果在检查此系统之前没有重新启动,您应该重新启动系统。getProperty(“JAVA_HOME”);当您从中尝试
EnvMap
示例时,您会得到什么?即使路径变量值不匹配。我认为如果在我重新启动系统之前没有重新启动系统,您应该重新启动系统,但它没有效果。当我发出echo$APP时,我得到了输出,但在java文件中无法访问相同的变量。我已经重新启动了系统,但它没有效果。当我发出echo$APP时,我得到了输出,但在java文件中无法访问相同的变量运行
export | grep APP
会给出以下结果
declare-x APP=“/opt/apps/”
,但我仍然无法在内部访问它JAVA@Jay您是如何从哪里开始java的?我的意思是:-您是以java YourClassName的身份从控制台启动它吗?您是使用脚本运行它吗?还是说作为服务运行的web应用程序?我是在tomcat服务器上部署war文件。我的tomcat位于/opt/tomcat。版本8。*然后您需要在tomcat/catalina启动脚本中找到或设置所需的/etc/environment变量,因为tomcat不是在shell的环境中运行的。如果您在这方面需要进一步的帮助,我建议您在问题中添加#tomcat,并相应地更改问题的措辞,以便更多了解tomcat的人能够帮助您。添加了tomcat。感谢您的帮助运行
export | grep APP
会给出以下结果
declare-x APP=“/opt/apps/”
,但我仍然无法在内部访问它JAVA@Jay您是如何从哪里开始java的?我的意思是:-您是以java YourClassName的身份从控制台启动它吗?您是使用脚本运行它吗?还是说作为服务运行的web应用程序?我是在tomcat服务器上部署war文件。我的tomcat位于/opt/tomcat。版本8。*然后您需要在tomcat/catalina启动脚本中找到或设置所需的/etc/environment变量,因为tomcat不是在shell的环境中运行的。如果您在这方面需要进一步的帮助,我建议您在问题中添加#tomcat,并相应地更改问题的措辞,以便更多了解tomcat的人能够帮助您。添加了tomcat。谢谢你的帮助