从简单的java类执行System.getProperty(“user.dir”)时,它为我提供了像workspace / projectName这样的正确路径。但是当我在REST Web服务的服务方法中编写相同的代码并通过chrome上的客户端应用程序执行它时,它为我提供了eclipse所在的路径,而不是当前目录。有没有办法获取当前工作目录的路径或java文件(服务)所在的路径。我需要这个,因为我想读取一个与java文件位于同一路径的属性文件。
答案 0 :(得分:2)
我遇到了同样的问题,并使用配置更改解决了问题。使用Run - >更改Eclipse中工作目录的位置运行配置。在Arguments选项卡上,选择Other单选按钮,并将Workspace或任何自定义位置指定为工作目录。
答案 1 :(得分:0)
有没有办法获取当前工作目录的路径
是。您已经获得了运行应用程序时生效的当前目录。
...它为我提供了eclipse所在的路径而不是当前目录。
抱歉......但那是当前目录。是的...>> IT IS<<如果您不同意,那么您对“当前目录”的含义的理解是不正确的。
...或java文件(服务)所在的路径。我需要这个,因为我想读取一个与java文件位于同一路径的属性文件。
没有办法可移植和可靠地做到这一点。 (当然,您可以将不动产文件的绝对路径放入第二个属性文件中......但是您遇到了查找第二个属性文件的问题...)
解决方案是:
将属性文件放在JAR文件中,并使用getResourceAsStream(path)
访问它。
将属性文件放在一个众所周知的位置;例如用户的主目录。 (实际上,主目录可能是服务的不良选择。)