找到java应用程序的相对路径

时间:2013-06-10 12:14:51

标签: java jsf managed-bean

我已经在StackOverflow中阅读了与此相关的所有其他问题,但我没有找到任何明确的答案。 简而言之,我有一个应用程序将一些文件存储在我将使用的目录中,而不是处理它们。我有意在不同的地方(其他计算机)移动我的应用程序,所以我需要有一个相对的工作路径,这样我就不会每次都改变它。 有谁知道如何获取应用程序的相对路径(而不是完整路径),以便我可以在这种情况下使用?如果我问的不是怀疑,请告诉我另一种方法来实现我的需要。谢谢

2 个答案:

答案 0 :(得分:3)

只需使用"./"

无论您的应用程序从哪个目录启动,"./"将始终返回该目录。

例如:

new File("./")将返回一个文件对象,该文件对象指向您的java应用程序已从

启动的目录

new File("./myDirectory")将返回一个文件对象,该文件对象位于您的java应用程序已启动的目录中的myDirectory文件夹中

答案 1 :(得分:1)

这是一种方法:

我认为您需要在配置/属性文件中定义包含文件的目录路径。移动应用程序或包含该文件的目录时,可以更改配置文件中的路径。这就是你的属性文件(比如说config.properties)的内容应该是:

  

filesDirPath = \ USR \家\测试

这就是你应该在代码中做的事情:

  private void readConfig()
    {
        Properties prop = new Properties();

        try {
               //load a properties file
            prop.load(new FileInputStream("config.properties"));

               //get the directory path property value
                String flesDirPath = prop.getProperty("filesDirPath");

                System.out.println("Files to be read are located in dir : "  + flesDirPath );


        } catch (IOException ex) {
            ex.printStackTrace();
        }

    }