我想获得我应用的绝对路径,并且我正在使用以下代码:
String pathToSave = FacesContext.getCurrentInstance()
.getExternalContext().getRealPath("/");
结果是:
/home/ronaldo/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Odontonew/
但我正在等待:/home/ronaldo/workspace/Odontonew/
有什么问题?
答案 0 :(得分:4)
ExternalContext#getRealPath()
返回相对于部署的网址的路径,而不是像您错误地预期的那样开发webapp的路径。
但是,变量名pathToSave
表示更大的问题:您似乎打算在那里保存文件。由于以下答案中提到的原因,这是糟糕的主意:Uploaded image only available after refreshing the page。简而言之,将它们保存到固定的本地磁盘文件系统路径中。请注意,某些服务器提供了使此步骤更易于配置的方法,例如: JBoss
停止使用getRealPath()
。在现实世界中你永远不需要它。在我开发Java Web应用程序的10年中(它来自ServletContext#getRealPath()
),该方法从未对任何事情有用。完全忽略这种方法。