用Java如何从Eclipse获取当前项目路径?

3
在Eclipse中,我有一个名为SampleProj的项目。
该项目的结构如下所述:
SampleProj
   |  
    -- META-INF
            |
             -- dbdetails.properties

目前,我是这样读取文件的:

FileReader reader = new FileReader("C://Workspace//SampleProj/META-INF//dbdetails.properties");

“但这个路径只限于我的rit系统。所以,我想要让这个路径通用化。”
“因此,我正在尝试保持路径如下:”
FileReader reader = new FileReader("SampleProj/META-INF//dbdetails.properties");

但是,我收到了文件未找到的异常。
如何从项目中读取此文件。请问有人可以帮帮我吗?

你可以在运行应用程序时设置工作目录。如果你将其设置为C://Workspace,你的代码将可以正常工作。 - talex
@ma3stro 只有在将 META-INF 包含到项目资源中时才能正常工作。 - talex
4个回答

4
您可以使用以下方式进行获取:
String workingDir = System.getProperty("user.dir");

那么您可以像这样进行操作:

然后您可以这样做:

FileReader reader = new FileReader(workingDir +"//SampleProj//META-INF//dbdetails.properties");

1
  • 进入Run/Run Configurations...
  • 选择要使用的启动配置
  • 选择选项卡Arguments
  • Working directory 部分,单击 Other
  • C:\Workspace输入文本字段中
  • 单击Apply

然后SampleProj/META-INF/dbdetails.properties应该可以作为路径使用,因为相对路径是相对于用户工作目录对应的系统属性user.dir


它有帮助吗? - Nicolas Filotto
是的,它帮助了我。非常感谢你,Nicolas。 - dev777

0

就开发而言,您可以像下面这样做,但一旦部署项目,最好将文件添加到类路径中。

String currentDirectory=System.getProperty("user.dir");


FileReader reader = new FileReader(currentDirectory+"/SampleProj/META-INF//dbdetails.properties");

0

如果您正在使用Spring Web-MVC项目,请使用以下示例代码:

String path=session.getServletContext().getRealPath("/ui_resources/images/logo.png");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接