2017-09-07 31 views
-1

我想了解的System.getProperty("user.dir")像控制台应用程序,Web应用等不同的应用程序工作System.getProperty(“user.dir来”)给出了控制台和Web应用程序不同的路径

它的运行,同时给予不同的路径控制台应用程序web应用程序。下面是examples-:
虽然在控制台应用程序中运行它打印如下:

d:\ Eclipse工作区火星\ ResearchProject

这是项目的根目录中的Java类文件谎言有System.getProperty("user.dir")行代码。

在另一方面,如果我请从一些的servlet /服务/商业/ DAC java类System.getProperty("user.dir")代码然后它打印如下:

d:\蚀-JEE-MARS -2- win32的\蚀

这是eclipse的根文件夹。

System.getProperty("user.dir")如何适用于不同类型的应用?
有什么方法可以获取Web应用程序的根目录?

+0

问题的核心是什么?关于“user.dir”的知识或获取Web应用程序的根目录?第二个谷歌“java获取web应用程序的根目录” –

+0

System.getProperty(“user.dir”)返回“用户工作目录”。 –

+0

@JacekCz我已经更新了这个问题。 –

回答

2

System.getProperty(“user.dir”)如何适用于不同类型的应用程序?

它在所有情况下的工作方式完全相同。它返回由启动应用程序的应用程序指定的“当前目录”。

  • 对于交互式shell,它将是启动应用程序的shell(或子shell)的当前目录。

  • 对于shell脚本或本地启动程序,它将是脚本或启动程序设置的当前目录。 (例如,当您使用“catalina.sh”脚本启动Tomcat时,该脚本将设置当前目录。)

  • 对于由Eclipse启动的应用程序,它将是启动时设置的当前目录您正在使用的配置。 默认是项目目录,但您可以在启动配置中覆盖此项目。

有没有什么办法让Web应用程序的根目录?

我假定你的意思是web容器中部署的webapp的根目录。

String path = request.getServletContext().getRealPath("/"); 

有关详细信息:

不过,也有各种 “陷阱” 通过文件系统访问Web应用程序文件。一个是他们可能随时因重新部署而遭到破坏。 A 更好方法是使用getResourceAsStream访问部署的webapp中的“文件”。

相关问题