0

首先,我设置 PATH 变量,CATALINA_HOME=/opt/tomcat然后在终端中检查它cd $CATALINA_HOME是否有效。
其次,我创建file.properties并编写了catalina.home=%CATALINA_HOME%.
最后,我尝试运行以下代码


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

 
原因:java.io.FileNotFoundException:%CATALINA_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)
4

1 回答 1

0

如果要CATALINA_HOME在 Java 中获取环境变量的值,请使用System.getenv("CATALINA_HOME").

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

于 2014-07-09T19:58:16.883 回答