Jar类路径资源读取失败,从其他可执行jar触发

时间:2018-03-02 12:44:36

标签: java classpath

参考链接:How do I read a resource file from a Java jar file?

我正在尝试使用您的代码库并尝试阅读位于我的项目目录sample.csv中的src/main/resources内容。我无法阅读内容,它说无法读取文件。输出:

  

[无法读取文件:sample.csv]

//在此检查后,在您的while循环中添加 / *如果是目录,则跳过它。 * /

我的意思是当检测到文件时,接下来是我添加的下面的代码片段以读取文件内容

if(entry.getName().contains("sample.csv")) {
   File f1 = new File("sample.csv");
   if(f1.canRead()) {
      List<String> lines = Files.readAllLines(f1.toPath());
      System.out.println("Lines in file: "+lines.size());
   } else {
      System.out.println("Can not read file: "+entry.getName());
  }
}

任何人都可以告诉我这里我做错了什么,我怎样才能让它发挥作用?

我的要求是:

  1. (我的微服务)Service.jar在其pom.xml中导入Parser.jar
  2. (我的图书馆) - Parser.jar FnmaUtils-3.2-fieldMapping.csv目录中有src/main/resources个文件
  3. 有一个FnmaUtils类在其构造函数中加载FnmaUtils-3.2-fieldMapping.csv,此类是Parser.jar的一部分 - 我在这里尝试阅读内容{{1} },此步骤始终失败并出现以下错误,尝试了[How do I read a resource file from a Java jar file?

    中显示的所有可能选项
    FnmaUtils-3.2-fieldMapping.csv
  4. 获取错误:

    public FnmaUtils() {
       String mappingFileUrl = null;
       try {
           Resource resource = new ClassPathResource("FnmaUtils-3.2-fieldMapping.csv");
           mappingFileUrl = resource.getFile().getPath();
           loadFnmaTemplate(mappingFileUrl);
       } catch (Exception e) {
           e.printStackTrace();
           LOGGER.error("Error loading fnma template file ", e);
       }
    }
    

    这里出了什么问题?

1 个答案:

答案 0 :(得分:0)

尝试

  

InputStream in = this.getClass()。getClassLoader()                                   .getResourceAsStream( “SomeTextFile.txt”);

确保资源位于类路径中。