gpt4 book ai didi

java - 未找到 Maven 资源

转载 作者:行者123 更新时间:2023-12-01 19:41:55 25 4
gpt4 key购买 nike

我想在 Maven 项目中包含一个文本文件。代码本身可以编译,但每次我尝试运行它时,无论是在 VS Code 中还是在命令行中,我都会得到:java.io.FileNotFoundException: 提供的文件路径/lightdm-forum.txt 不存在。 该文件位于 src/main/resources/,这是默认的。

代码片段:

    public static void main(String[] args) throws Exception {

StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironment();

DataStream<Tuple2<String, Integer>> dataStream = env
.readTextFile("/lightdm-forum.txt")
.flatMap(new Splitter())
.keyBy(0)
.sum(1);

dataStream.print();

env.execute("Socket Stream WordCount");
}

Maven 似乎识别了该文件并将其复制到类路径根目录:

[INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ WordCount_Stream ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource

编译后,目标文件夹中的结构如下所示:

.
├── classes
│   ├── com
│   │   └── lmu
│   │   └── WordCount_Stream
│   │   ├── WordCounter$Splitter.class
│   │   └── WordCounter.class
│   └── lightdm-forum.txt

所以文件已被复制,但当我尝试运行该项目时找不到它。有什么想法吗?

最佳答案

您使用/lightdm-forum.txt这是作为全局路径的路径。您可以尝试使用像 path/to/your/subfolder/or/file 这样的相对路径或../path/to/upper/folder/and/other/folders .

也许更好的解决方案是使用类似 Thread.currentThread().getContextClassLoader().getResource(resourceName) 的类加载器。这样你就可以从maven资源包中加载文件(默认为src/Main/resources,Van也可以在pom.xml中自定义)

希望对你有帮助!

关于java - 未找到 Maven 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59166273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com