【问题标题】:How to get current directory in Spring? [closed]如何在 Spring 中获取当前目录? [关闭]
【发布时间】:2013-08-14 17:35:12
【问题描述】:

我在 Spring 有一个小项目。它位于(例如)C:/users/projects/blog。我怎样才能得到这个路径?

【问题讨论】:

  • Java 应用程序不知道它在哪里。只有它从哪里开始,即。 java 程序位于哪个目录(即使这是一个 hack,也不应该使用)。
  • 我的项目中有一个备份目录。我想在那里添加备份。
  • 备份什么?这是X Y problem。告诉我们您想做什么,我们将帮助您找到解决方法。不要问我们你想做什么。
  • 我知道如何进行备份。我只想返回项目文件夹。
  • 从哪里返回项目文件夹?从您的应用程序的方法?我告诉过你,这只会返回java 可执行文件的路径,我怀疑它也在你的项目目录中。

标签: java string spring directory


【解决方案1】:

也许这就是你要找的:

System.getProperty("user.dir")

此属性返回应用程序的用户工作目录。

【讨论】:

  • 它显示了C:\Users\xxx\springsource\sts-3.2.0.RELEASE,但我需要C:/users/projects/blog
  • 您似乎从 spring 工具套件运行应用程序。它是 Web 应用程序还是您可以从命令行运行它?
  • 它是网络应用程序。是的。
  • 所以在这种情况下,您位于C:/users/projects/blog 的项目文件在应用程序容器(例如tomcat)上启动时不会与应用程序关联。
  • 然后呢?如何获取项目路径?
【解决方案2】:

没有项目元数据,Java 无法确定项目的根目录。 您可以使用以下命令获取执行代码的当前类的绝对路径: YourClassName.class.getResource("").getPath()

【讨论】:

  • 不。C:/Users/xxx/springsource/vfabric-tc-server-developer-2.8.2.RELEASE/base-instance/wtpwebapps/blog/WEB-INF/classes/net/babobka/blog/controller/
  • 如果这仅用于备份目的,我将在项目根目录有一个 java 代码,内容如下,并使用路径进行备份: public class DirectoryPath{ public static void main(String args[]) { System.out.println("Path::::"+DirectoryPath.class.getResource("").getPath()); } }
  • 你得到这个是因为你的 java 类在包中。您可以尝试将参数传递给 getResource("") 并使用它。
【解决方案3】:

您是否尝试过使用属性文件。这是一个例子

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location">
        <value>file:${path}</value>
    </property>
    <property name="ignoreUnresolvablePlaceholders" value="true" />
</bean>

在运行代码时,您需要传入 -Dpath=C:\users\projects\blog 作为参数

【讨论】:

    猜你喜欢
    • 2010-10-26
    • 2012-12-12
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 2018-06-04
    相关资源
    最近更新 更多