gpt4 book ai didi

java - 如何使用注释处理器从 src/main/resources 读取文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:22:12 25 4
gpt4 key购买 nike

我有一个简单的注释处理器,需要从与注释类相同的项目中读取配置文件。示例结构:

- myproject 
- src
- main
- java
- my.package.SourceFile
- resources
- config.json

在注释处理器中,我尝试读取文件:

FileObject resource = processingEnv.getFiler().getResource(StandardLocation.SOURCE_PATH, "", "config.json");

但它会抛出 FileNotFoundException。我还尝试了其他路径,例如 ../resources/config.json,(抛出 Invalid relative name: ../resources/config.json)。我尝试将配置文件放在 src/main/java(甚至 src/main/java/my/package)中,我不喜欢,但是这仍然会抛出 FileNotFoundException

如果我能让 filer.getResource() 告诉我它在寻找什么,那将会很有帮助。为了找出答案,我尝试生成一个文件:

filer.createResource(StandardLocation.SOURCE_OUTPUT, "", "dummy");

myproject/build/classes/main/dummy 中生成。不幸的是,我无法在 SOURCE_PATH 中生成,因此这无助于找到它。

最佳答案

我希望在构建期间(在注释处理之前)将来自 src/main/resources 的内容复制到 target/classes。在这种情况下,您可以像这样打开它们:

ProcessingEnvironment pe = ...;
FileObject fileObject = pe.getFiler()
.getResource( StandardLocation.CLASS_OUTPUT, "", "config.json" );
InputStream jsonStream = fileObject.openInputStream();

关于java - 如何使用注释处理器从 src/main/resources 读取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39772189/

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