Java 在Tomcat中创建文件的路径
我创建了一个xml格式的网站设置文件,该文件的内容指定了网站标题、url、元描述、管理电子邮件等内容 在我的Java代码中,我简单地将文件定义如下:Java 在Tomcat中创建文件的路径,java,xml,file,tomcat,path,Java,Xml,File,Tomcat,Path,我创建了一个xml格式的网站设置文件,该文件的内容指定了网站标题、url、元描述、管理电子邮件等内容 在我的Java代码中,我简单地将文件定义如下: private static final String webSettingFileName = "WebSettings.xml"; public void saveSetting() { File settingFile = new File(webSettingFileName); // try-catch block to
private static final String webSettingFileName = "WebSettings.xml";
public void saveSetting()
{
File settingFile = new File(webSettingFileName);
// try-catch block to write the XML file omitted
}
部署war文件后,我发现web设置xml文件已写入Tomcat bin文件夹,但是,我希望将该文件写入Tomcat中webapps的根文件夹中。所以我想知道如何在代码中指定文件路径。谢谢
编辑:
贾罗德·罗伯森因为重复的问题给了我一个红色-1。我不同意他的观点,因为我在写这篇文章之前已经检查过这篇文章了。我尝试了中建议的方法,但它对我不起作用,因为无论Tomcat重新启动多少次,我都需要将web设置文件永久保存在同一位置(因此Tomcat/webapps符合我的目的!)。该文件用于保存网站设置。此外,ServletContext在我用于webapp的Java1.8中似乎不起作用
编辑2:
这就是我最终成功的原因:
private final static File catalinaBase = new File(System.getProperty("catalina.base")).getAbsoluteFile();
private static final String webSettingFileName = "WebSetting.xml";
private final static File file = new File(catalinaBase, "webapps/" + webSettingFileName);
您可以使用方法
ServletContext.getRealPath(“/”)
检索当前webapp的绝对文件系统路径,例如:
File settingFile = new File(getServletContext().getRealPath("/"), webSettingFileName);
请注意,这只适用于已分解(解压缩)的war文件。您是否尝试为其提供绝对路径?这两种方法都不是好主意。您应该在应用程序的WAR文件中包含该文件,而不是Tomcat根目录。是的,在WAR文件中编写该文件是一个更好的主意,但不确定如何执行。我应该在代码中放置类似{Context}/webSettingFileName的内容吗?