迁移到 java11 后出现 NoSuchFileException

Getting NoSuchFileException after migrating to java11

我有单元测试方法,它使用与子测试文件夹相关的资源,当我 运行 宁这个项目时它工作正常但是当我 运行 父级时它附加父路径到我的相对字符串值 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

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

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

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

改变