我有一个java Web服务(.war文件),我部署到几个不同的环境,即Apache Tomcat 7.0.x和JBoss EAP 6.1.x.当我打开File
对象(File file = new File("./test.file");
)时,绝对路径根据我使用的应用程序服务器而不同。我通过调用file.getAbsolutePath()
输出绝对路径。
对于Tomcat,它似乎在test.file
目录中查找Tomcat/bin
,但对于我的JBoss EAP实例,它会查找/test.file
,即系统根目录。
这两个应用程序服务器中是否有一些配置参数或环境变量指示工作目录?
答案 0 :(得分:0)
Tomcat使用CATALINA_HOME,
我对JBoss不太了解,
但我认为这使用了EAP_HOME和JBOSS_HOME
答案 1 :(得分:0)
webapp中的工作目录与servlet上下文相关。
它的正确性。 getAbsolutePath方法返回给路径的相应路径
见这里 https://docs.oracle.com/javase/7/docs/api/java/io/File.html#getAbsolutePath()
或此处例如
http://www.mkyong.com/java/how-to-get-the-filepath-of-a-file-in-java/
但是,如果你想要当前webapp的绝对路径,那么你可以试试这个:
What does servletcontext.getRealPath("/") mean and when should I use it