【问题标题】:Getting NoSuchFileException after migrating to java11迁移到 java11 后出现 NoSuchFileException
【发布时间】:2019-09-03 13:34:28
【问题描述】:

我有单元测试方法,它使用与子项目中的测试文件夹相关的资源,当我运行这个项目时它工作正常,但是当我运行父项目时,它会将父路径附加到我的相对字符串值 JsonFile 而不是当前项目路径

    JsonFile = "src/test/resources" + "fileName";
    System.out.println(Paths.get("").toAbsolutePath());
    String input = new String(Files.readAllBytes(Paths.get(JsonFile)));

我正在使用 openJDK11、SureFire 插件 3.0.0-M3 和 springboot 2.1.5.RELEASE。 为什么
mvn clean install -Pjava11会有这种不同的行为
java11 是配置文件存在于父 pom 中

我试图覆盖配置文件 java11 并更改 SureFire 插件的版本,但它没有用,我不知道问题出在哪里?它适用于 java 8

【问题讨论】:

    标签: spring-boot maven-3 java-11 maven-surefire-plugin


    【解决方案1】:

    实际上经过大量搜索后,我发现 Path.get 与文件系统有关,而不是工作目录link shows that 之后,我更改了使用 classLoader 等获取测试文件夹中存在的资源文件的机制

    ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource(fileName).getFile()); JsonFile = file.getAbsolutePath();

    它适用于父母和孩子mvn clean install -Pjava11 我添加了什么来改变 Path.get() 的机制并不明显 但它并没有从 jdk 7 改变

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-19
      • 1970-01-01
      • 2021-12-21
      • 2021-01-29
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多