Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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
我设置了CATALINA_HOME的PATH变量,但当我尝试用java创建新文件时,它出错了_Java_Linux_Tomcat_Ubuntu_Catalina - Fatal编程技术网

我设置了CATALINA_HOME的PATH变量,但当我尝试用java创建新文件时,它出错了

我设置了CATALINA_HOME的PATH变量,但当我尝试用java创建新文件时,它出错了,java,linux,tomcat,ubuntu,catalina,Java,Linux,Tomcat,Ubuntu,Catalina,首先,我设置PATH变量CATALINA_HOME=/opt/tomcat,然后在终端cd$CATALINA_HOME中检查它是否工作。 其次,我创建了file.properties并编写了catalina.home=%catalina\u home% 最后,我尝试运行以下代码 @Autowired Enviroment enviroment; String path = environment.getProperty("catalina.home") + File.separator + "

首先,我设置PATH变量
CATALINA_HOME=/opt/tomcat
,然后在终端
cd$CATALINA_HOME
中检查它是否工作。
其次,我创建了
file.properties
并编写了
catalina.home=%catalina\u home%

最后,我尝试运行以下代码

@Autowired Enviroment enviroment;
String path = environment.getProperty("catalina.home") + File.separator + "webapps" + File.separator + "templates" + File.separator;
File dir = new File(path);
但这不起作用

Caused by: java.io.FileNotFoundException: %CATALINA_HOME%/webapps/templates does not exist. at freemarker.cache.FileTemplateLoader$1.run(FileTemplateLoader.java:124) at java.security.AccessController.doPrivileged(Native Method) at freemarker.cache.FileTemplateLoader.(FileTemplateLoader.java:121) at freemarker.cache.FileTemplateLoader.(FileTemplateLoader.java:107) at freemarker.template.Configuration.setDirectoryForTemplateLoading(Configuration.java:439) 原因:java.io.FileNotFoundException:%CATALINA\u HOME%/webapps/templates不存在。 在freemarker.cache.FileTemplateLoader$1.run(FileTemplateLoader.java:124) 位于java.security.AccessController.doPrivileged(本机方法) 位于freemarker.cache.FileTemplateLoader。(FileTemplateLoader.java:121) 位于freemarker.cache.FileTemplateLoader。(FileTemplateLoader.java:107) 在freemarker.template.Configuration.setDirectoryForTemplateLoading(Configuration.java:439)中
如果要在Java中获取环境变量CATALINA\u HOME的值,请使用
System.getenv(“CATALINA\u HOME”)


我不确定是什么让您认为
.properties
文件将使用任何环境变量值。它根本不这样做。如果在属性文件中设置了
catalina.home=%catalina\u home%
,则从属性
catalina.home
返回的值将始终是字符串
%catalina\u home%
。另外,
文件
类将完全不关注环境变量值。在您的情况下,
%CATALINA_HOME%/webapps/templates
不存在,因为(几乎可以肯定)Tomcat的当前工作目录中没有名为
%CATALINA_HOME%

什么是
file.properties
,为什么您认为此文件的每个属性都将设置为系统属性?@JigarJoshi,我不知道我没有处理过这种类型的文件,在错误消息中我们看到了
%CATALINA_HOME%/
这是否意味着什么是无法识别的?