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。谢谢你的帮助