我设置CATALINA_HOME的PATH变量,但是当我尝试在java中创建新的FIle时出错了

时间:2014-07-09 18:28:00

标签: java linux tomcat ubuntu catalina

首先,我设置了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);
但这不起作用

 
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)

1 个答案:

答案 0 :(得分:0)

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

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