我需要使用Java获取已部署的spring应用程序的完整路径。我尝试了以下来获取路径
getClass().getProtectionDomain().getCodeSource().getLocation().getPath()
返回以下内容:
" /content/MyProject.war/WEB-INF/classes"
(部分路径)
" / C:/wildfly-8.2.0.Final/standalone/deployments/MyProject.war/WEB-INF/classes"
(返回完整路径)
以上工作在我的Windows
计算机上,但未在Wildfly
上运行CentOS
。
答案 0 :(得分:2)
据我所知,没有像部署的Web应用程序的完整路径这样的概念 - 至少在Java EE规范中没有。
您似乎默认假设已部署的Web应用程序必须位于文件系统中的某个位置,并且该位置存在绝对路径。
但情况并非如此,如果碰巧是这种情况,那么它就是应用服务器的实现细节,您的应用程序不应该依赖它。