【问题标题】:System.getProperty("user.dir") giving path of eclipse while executing through web serviceSystem.getProperty("user.dir") 通过 Web 服务执行时给出 eclipse 的路径
【发布时间】:2015-09-29 09:02:33
【问题描述】:

从一个简单的 java 类执行 System.getProperty("user.dir") 时,它为我提供了正确的路径,例如工作空间/项目名称。但是,当我在 REST Web 服务的服务方法中编写相同的代码并通过其在 chrome 上的客户端应用程序执行它时,它给了我 eclipse 所在的路径,而不是当前目录。有没有办法获取当前工作目录的路径或java文件(服务)所在的路径。我需要这个,因为我想读取与 java 文件位于同一路径的属性文件。

【问题讨论】:

  • getResourceAsStream 应该可以工作
  • 您使用的是哪台服务器?雄猫?
  • @Hasslarn 是的,我正在使用 tomcat
  • 澄清你的想法。它根本不是“通过网络服务执行”。它正在通过 Eclipse 执行 web 服务。一个正确编写的网络应用程序根本不需要知道它的绝对路径,如果知道的话,有很多机制可以提供它。
  • '它给了我eclipse所在的路径,而不是当前目录'错了。它确实为您提供当前目录,在本例中 Eclipse 所在的路径。这里的问题在于您的期望。

标签: java web-services


【解决方案1】:

我遇到了同样的问题,并通过更改配置解决了它。使用 Run -> Run Configurations 更改 Eclipse 中工作目录的位置。在 Arguments 选项卡上选择 Other 单选按钮并指定 Workspace 或任何自定义位置作为工作目录。

【讨论】:

  • 对我来说,该目录在 apache tomcat 服务器 > 参数 > 工作目录下不正确。
【解决方案2】:

有没有办法获取当前工作目录的路径

是的。当您运行应用程序时,您已经获得了当前有效的目录。

...它给了我eclipse所在的路径,而不是当前目录。

对不起...但这是当前目录。是的...>>它是

... 或 java 文件(服务)所在的路径。我需要这个,因为我想读取与 java 文件位于同一路径的属性文件。

没有办法做到便携且可靠。 (当然,你可以把真实属性文件的绝对路径放到第二个属性文件中……但是你遇到了寻找第二个属性文件的问题……)

解决办法是:

  • 将属性文件放入 JAR 文件中,并使用 getResourceAsStream(path) 访问它。

  • 将属性文件放在一个众所周知的位置;例如用户的主目录。 (实际上,主目录对于 Service 来说可能是一个糟糕的选择。)

【讨论】:

    猜你喜欢
    • 2018-02-15
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 2015-10-04
    相关资源
    最近更新 更多