在运行时查找同一目录中文件的路径
Find the path of file in same directory during RUNTIME
我有一个 struts2 和休眠应用程序。我打算做的是,如果数据库配置无效,我会从用户那里收到它并使用更新的设置修改 hibernate.hbm.xml。我能够检查并接收用户的设置,唯一的问题是 domparser 找不到我的 hibernate.cfg.xml.
String filepath = "hibernate.cfg.xml";
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filepath);
当以普通用户身份部署应用程序时,我得到这个
/home/uzumaki/hibernate.cfg.xml (No such file or directory)
当我 运行 作为 root 时,
/hibernate.cfg.xml (No such file or directory)
使用 File("").getAbsolutePath())
并与 hibernate.cfg.xml 连接也给了我同样的错误。
该文件当然不存在,它与我的 java code/class 在同一文件夹中,并且随处可见(例如 war 文件)
经过大量搜索,我终于找到了一种在运行时获取应用程序真实路径的方法。我发布这个以防有人需要它。
HttpServletRequest servletRequest = ServletActionContext.getRequest();
String app_path;
app_path = servletRequest.getSession().getServletContext().getRealPath("/");
现在(以我为例)
String filepath = app_path + "WEB-INF/classes/hibernate.cfg.xml";
我有一个 struts2 和休眠应用程序。我打算做的是,如果数据库配置无效,我会从用户那里收到它并使用更新的设置修改 hibernate.hbm.xml。我能够检查并接收用户的设置,唯一的问题是 domparser 找不到我的 hibernate.cfg.xml.
String filepath = "hibernate.cfg.xml";
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filepath);
当以普通用户身份部署应用程序时,我得到这个
/home/uzumaki/hibernate.cfg.xml (No such file or directory)
当我 运行 作为 root 时,
/hibernate.cfg.xml (No such file or directory)
使用 File("").getAbsolutePath())
并与 hibernate.cfg.xml 连接也给了我同样的错误。
该文件当然不存在,它与我的 java code/class 在同一文件夹中,并且随处可见(例如 war 文件)
经过大量搜索,我终于找到了一种在运行时获取应用程序真实路径的方法。我发布这个以防有人需要它。
HttpServletRequest servletRequest = ServletActionContext.getRequest();
String app_path;
app_path = servletRequest.getSession().getServletContext().getRealPath("/");
现在(以我为例)
String filepath = app_path + "WEB-INF/classes/hibernate.cfg.xml";