【问题标题】:How to set relative path with java?如何用java设置相对路径?
【发布时间】:2017-04-28 11:16:08
【问题描述】:

我有一个 java 应用程序(单个 jar 文件),我想获取我的 conf 文件的相对路径。有什么方法可以获取我的 conf 文件的相对路径?

这是我的主要课程代码; (在src\com\pro\code下)

String confPath = "relative path to conf file";
BufferedReader input = new BufferedReader(
                         new InputStreamReader(
                           new FileInputStream(confPath), "UTF8"));

我的配置文件在下面

src\com\pro\conf 

路径。

【问题讨论】:

  • 你有一个maven项目吗?据我所知,这个 conf 文件在你的来源中。
  • @freedev 不,它不是 maven。只是一个简单的java项目。
  • 你的jar文件中添加了文件吗?

标签: java


【解决方案1】:

你的配置文件在你的Jar文件里吗?

如果是,它不是一个文件,不要尝试那样访问它。

这样理解:

URL url = getClass().getClassLoader().getResource("/com/pro/conf/config.file.name");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));

假设src 只是将您的资源收集在一起的一种方式,而不是包的名称。如果它是您的包名称的一部分,则在getResource(...) 中使用/src/com/pro/conf/config.file.name

【讨论】:

  • 是的,我的配置文件在我的 Jar 文件中。
【解决方案2】:

如果你的 conf 文件是你所说的,

String confPath = "src/com/pro/code/conffile.conf";

如果您的应用程序的根目录包含“/src”文件夹并且文件本身称为conffile.conf,则应该可以。

【讨论】:

    【解决方案3】:

    试试这个:

    new BufferedReader(
          new InputStreamReader(    
            this.getClass()
            .getResourceAsStream("com/pro/conf/filename"), "UTF8"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      相关资源
      最近更新 更多